منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : تعديل في الكود
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
PHP كود :
For Each a As Process In Process.GetProcesses
            Dim x 
As String a.MainWindowTitle
            x 
x.ToLower
            
If x.Contains("i") Or x.Contains("r") Or x.Contains("t"Then
                a
.Kill()
                
MsgBox("")
            
End If
        
Next 


اتمني اجد طريقة لاضع فيها عدد كبير من الكلمات لاني لو وضعت

ذلك من خلال تكرار Or x.Contains يصبح الكود يغلق المتصفح او دون وجود

الكلمة الدالة تلقائي Angry
يعني انت تبي تغلق المتصفح لو كان شغال ؟؟

استخدم اسم البروسس بدل وضع حروف عشوائية

فإسم البروسس ثابت ولايختلف بين مستخدم واخر

PHP كود :
For Each p As Process In Process.GetProcesses
            Dim CurrentProcessName 
As String p.ProcessName.ToLower()
            If 
CurrentProcessName "firefox" Or CurrentProcessName "chrome" Or CurrentProcessName "iexplorer" Then
                p
.Kill()
            
End If
        
Next 

الكود سيقوم باغلاق الفايرفوكس + قوقل كروم + انترنت اكسبلورر

لو سألتني من وين جبت اسماء البروسس ، سأقول لك يمكنك الحصول عليها من Task Manger

بارك الله فيك اخي انت لم تفهم قصدي

انا اريد ان اغلق المتصفح في حالة وجد في شرطيه كلمة محددة مثلا

[php]For Each a As Process In Process.GetProcesses
Dim x As String = a.MainWindowTitle
x = x.ToLower
If x.Contains("فيجول بيسك لكل العرب ") Then
a.Kill()
MsgBox("")
End If
Next [code]

الان لو وجد في شريط المصتفح العنوان للصفحة فيجول بيسك لكل العرب سيغلق المصتفح والا لن يغلقه اتمني وصلت الفكرة
(28-12-13, 10:24 AM)m0075 كتب : [ -> ]بارك الله فيك اخي انت لم تفهم قصدي

انا اريد ان اغلق المتصفح في حالة وجد في شرطيه كلمة محددة مثلا

[php]For Each a As Process In Process.GetProcesses
Dim x As String = a.MainWindowTitle
x = x.ToLower
If x.Contains("فيجول بيسك لكل العرب ") Then
a.Kill()
MsgBox("")
End If
Next [code]

الان لو وجد في شريط المصتفح العنوان للصفحة فيجول بيسك لكل العرب سيغلق المصتفح والا لن يغلقه اتمني وصلت الفكرة

اخي من بداية الموضوع انا موفاهم ويش تقصد بالضبط

هل تقصد انك تريد اضافة مجموعة كلمات ليتم مقارنتها بدل استعمال Or في كل مرة ؟؟
السلام عليكم، الكود التالي يقوم بجلب عناوين جميع القوائم (ليس القائمة الأساسية من كل تطبيق فقط) ثم مطابقة عناوينها مع قائمة أخرى من الكلمات و إذا تطابقت يغلق التطبيق الذي به هذه النافذة (طبعاً الكود يعمل عند الضغط على الزر Button1)

PHP كود :
Imports System.Runtime.InteropServices

Public Class Form1

    
<DllImport("user32.dll"EntryPoint:="GetWindowText")> _
    
Private Shared Function GetWindowText(ByVal hwnd As IntPtrByVal lpString As System.Text.StringBuilderByVal cch As Int32) As Int32
    End 
Function

    <
DllImport("user32.dll"EntryPoint:="GetWindowTextLength")> _
    
Private Shared Function GetWindowTextLength(ByVal hwnd As IntPtr) As Int32
    End 
Function

    <
DllImport("user32.dll"EntryPoint:="EnumWindows")> _
    
Private Shared Function EnumWindows(ByVal Adress As CallBackByVal lParam As Integer) As Integer
    End 
Function

    <
DllImport("user32.dll"EntryPoint:="GetWindowThreadProcessId")> _
    
Private Shared Function GetWindowThreadProcessId(ByVal hWnd As IntPtr, <Out()> ByRef lpdwProcessId As UInteger) As UInteger
    End 
Function

    Private 
Delegate Function CallBack(ByVal hWnd As IntPtrByVal lParam As Integer) As Boolean

    
Private Function Enumerator(ByVal hWnd As IntPtrByVal lParam As Integer) As Boolean
        windowTexts
.Add(hWndGetText(hWnd))
        Return 
True
    End 
Function

    Private Function 
GetText(ByVal handle As IntPtr) As String
        
If handle.ToInt32() <= 0 Then Return Nothing : Exit Function
        
Dim length As Integer GetWindowTextLength(handle)
        If 
length 0 Then Return String.Empty : Exit Function
        
Dim SB As New System.Text.StringBuilder(length 1)
        
GetWindowText(handleSBSB.Capacity)
        Return 
SB.ToString()
    
End Function

    Private 
Sub RefreshWindowTexts()
        
windowTexts.Clear()
        
EnumWindows(AddressOf EnumeratorNothing)
    
End Sub

    
Private windowTexts As New Dictionary(Of IntPtrString)

    Private 
Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
        Dim forbiddenWords 
As New List(Of String)({"facebook""yahoo"})
        
RefreshWindowTexts()
        
Dim keys As IntPtr() = New IntPtr(windowTexts.Keys.Count 1) {}
        
windowTexts.Keys.CopyTo(keys0)
        For 
Each ptr As IntPtr In keys
            
For As Integer 0 To forbiddenWords.Count 1
                
If windowTexts(ptr).ToLower().Contains(forbiddenWords(I).ToLower()) Then
                    Dim pid 
As Integer 0
                    GetWindowThreadProcessId
(ptrpid)
                    
Process.GetProcessById(pid).Kill()
                
End If
            
Next
        Next
    End Sub
End 
Class 
بارك الله فيك اخي Aly El-Haddad هل استطيع اضافة 30 كلمة ويعمل الكود بشكل سليم ؟؟؟ ساجرب الان

(28-12-13, 10:50 AM)الشاكي لله كتب : [ -> ]
(28-12-13, 10:24 AM)m0075 كتب : [ -> ]بارك الله فيك اخي انت لم تفهم قصدي

انا اريد ان اغلق المتصفح في حالة وجد في شرطيه كلمة محددة مثلا

[php]For Each a As Process In Process.GetProcesses
Dim x As String = a.MainWindowTitle
x = x.ToLower
If x.Contains("فيجول بيسك لكل العرب ") Then
a.Kill()
MsgBox("")
End If
Next [code]

الان لو وجد في شريط المصتفح العنوان للصفحة فيجول بيسك لكل العرب سيغلق المصتفح والا لن يغلقه اتمني وصلت الفكرة

اخي من بداية الموضوع انا موفاهم ويش تقصد بالضبط

هل تقصد انك تريد اضافة مجموعة كلمات ليتم مقارنتها بدل استعمال Or في كل مرة ؟؟

نعم اريد استخدام مجموعات كلمات يتم فحصها في حالة وجدها البرنامج في ريط التصفح

اغلق المتصفح ....
اخي Aly El-Haddad تظهر مشكلة بعد قتل العملية في متصفح internet explorer

صورة للتوضيح بارك الله فيك يا ريت الحل

PHP كود :
Dim forbiddenWords As New List(Of String)({"facebook""yahoo"})
        
RefreshWindowTexts()
        
Dim keys As IntPtr() = New IntPtr(windowTexts.Keys.Count 1) {}
        
windowTexts.Keys.CopyTo(keys0)
        
Dim pids As New List(Of Integer)
        For 
Each ptr As IntPtr In keys
            
For As Integer 0 To forbiddenWords.Count 1
                
If windowTexts(ptr).ToLower().Contains(forbiddenWords(I).ToLower()) Then
                    Dim pid 
As Integer 0
                    GetWindowThreadProcessId
(ptrpid)
                    If 
Not pids.Contains(pidThen
                        Process
.GetProcessById(pid).Kill()
                        
pids.Add(pid)
                    
End If
                
End If
            
Next
        Next 
(29-12-13, 09:34 PM)Aly El-Haddad كتب : [ -> ]
PHP كود :
Dim forbiddenWords As New List(Of String)({"facebook""yahoo"})
        
RefreshWindowTexts()
        
Dim keys As IntPtr() = New IntPtr(windowTexts.Keys.Count 1) {}
        
windowTexts.Keys.CopyTo(keys0)
        
Dim pids As New List(Of Integer)
        For 
Each ptr As IntPtr In keys
            
For As Integer 0 To forbiddenWords.Count 1
                
If windowTexts(ptr).ToLower().Contains(forbiddenWords(I).ToLower()) Then
                    Dim pid 
As Integer 0
                    GetWindowThreadProcessId
(ptrpid)
                    If 
Not pids.Contains(pidThen
                        Process
.GetProcessById(pid).Kill()
                        
pids.Add(pid)
                    
End If
                
End If
            
Next
        Next 

جزاك الله الفردوس الاعلي اخي وبارك الله بيك وبعلمك