คือมีโปรแกรมรันอยู่ 2 ตัวอ่ะค่ะแต่ต้องการเช็ค Process ID ของโปรแกรมที่รันเพิ่มมาทีหลังเช่น
มี Process ชื่อ ProcessA รันอยู่ 2 ตัว แต่ขึ้นมาไม่พร้อมกันต้องการเช็คของตัวที่ขึ้นมาทีหลังอ่ะค่ะ โดยที่ Process ตัวแรกก็ยังทำงานอยู่ค่ะ
โดยอยากเช็คจากการหา title ของโปรแกรมค่ะ
หาเจอตัวอย่างมา 1 แบบคือ
Code (VB.NET)
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hWnd As Long, lpdwProcessId As Long) As Long
Function WindowToProcessId(ByVal hWnd As Long) As Long'Function เปลียน Window Handle เป็น PID
Dim lpProc As Long
Call GetWindowThreadProcessId(hWnd, lpProc)
WindowToProcessId = lpProc
End Function
Private Sub Timer1_Timer()
Dim hw As Long
hw = FindWindow(vbNullString, "ชื่อหน้าต่าง") 'Windows Title
If hw <> 0 Then
Text1.Text = WindowToProcessId(hw)
Timer1.Enabled = False
Timer2.Enabled = True
End If
End Sub
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports System.Threading.Tasks
Namespace ConsoleApplication1
Class Program
Private Shared Sub Main(args As String())
Dim localByName As System.Diagnostics.Process() = System.Diagnostics.Process.GetProcessesByName("notepad")
For Each p As System.Diagnostics.Process In localByName
Console.WriteLine("{0, -10}" & vbTab & "{1, -10}", p.ProcessName, p.Id)
Next
Console.WriteLine()
Console.Write("Press any key to continue...")
Console.ReadKey()
End Sub
End Class
End Namespace
Date :
2014-09-02 08:50:59
By :
ห้ามตอบเกินวันละ 2 กระทู้
No. 2
Guest
Code (VB.NET)
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports System.Threading.Tasks
Namespace ConsoleApplication1
Class Program
Private Shared Sub Main(args As String())
Dim localByName As System.Diagnostics.Process() = System.Diagnostics.Process.GetProcessesByName("notepad")
Console.WriteLine("{0, -10}" & vbTab & "{1, -10}" & vbTab & "{2, -10}", "Name", "ID", "Start time")
Console.WriteLine("--------------------------------------------");
For Each p As System.Diagnostics.Process In localByName
Console.WriteLine("{0, -10}" & vbTab & "{1, -10}" & vbTab & "{2, -10}", p.ProcessName, p.Id, p.StartTime)
Next
Console.WriteLine()
Console.Write("Press any key to continue...")
Console.ReadKey()
End Sub
End Class
End Namespace