จากโค๊ดนี้ถ้าหาเจอแล้วต้องการให้มัน close โปรแกรมที่หาเจอ ต้องเขียนเพิ่มยังไงหรอครับ
จาก : https://www.youtube.com/watch?v=qA-GnETewH8
Code (VB.NET)
Public Class Form1
Public Declare Auto Function FindwindoNullClassName Lib "user32.dll" Alias "FindWindow" (ByVal lpClassname As Integer, ByVal IpWindowsname As String) As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim hWnd As Integer = FindwindoNullClassName(0, TextBox1.Text)
If hWnd = 0 Then
TextBox2.Text = "No"
Else
TextBox2.Text = "Found!"
End If
End Sub
End Class
Try
For Each p As Process In Process.GetProcesses
If p.ProcessName.ToLower.Equals("cybergames") OrElse _
p.ProcessName.ToLower.Equals("war3") OrElse _
p.ProcessName.ToLower.Contains("counter strike") OrElse _
p.ProcessName.ToLower.Contains("hl") _
Then
System.Diagnostics.Process.EnterDebugMode()
p.Kill()
End If
Next
Catch ex As Exception
End Try
Date :
2015-02-19 09:05:33
By :
คนงานตัดอ้อย
No. 3
Guest
มันน่าจะใช้ process.kill นั่นน่าจะถูกว่านะครับ
อนึ่งการหยุดด้วย process.kill จะหยุดโปรแกรมค่ายอื่นๆได้ทันที
แต่กับ microsoft ให้ระวังกันนิสนึงเพราะค่ายนี้มักติด undocument function มาด้วย
เช่น ms word office หรือ windows media player
เวลาเราเปิด task manager แล้วสั่งให้หยุด process ซึ่งประมาณ process.kill นั่นแหละ
ถ้ามีงานที่ยังไม่ได้บันทึกเจ้า word มันจะมี dialoque ออกมาแจ้งว่าจะปิดฉันหรอ
แต่คุณยังไม่ได้บันทึกงานนะเอ้อ ซึ่งปกติมันจะปิดไปเลย
และเห็นหลายค่ายติดการโต้ตอบแบบนี้มาให้เห็นบ่อยๆ เข้าใจว่าน่าจะเป็นคนของ ms นั่นแหละ
ที่ออกไปทำงานที่อื่น
เสริมอีกหน่อยใน process ที่ได้จาก Process.GetProcesses นั้น info มันไม่ค่อยจะมีอะไรมากเท่าไหร่
หากต้องการรายละเอียดให้เรียกใช้จาก System.Management
ประมาณว่า >> Using searcher As New ManagementObjectSearcher("SELECT * FROM Win32_Process")
มาประกอบด้วยครับผม