如何使用process.start(程序)打开程序并返回程序的句柄(重新发帖)
自在修行 2011-12-09 08:04:46 我是要通过程序运行不特定的外部程序,并对其窗口进行控制,对于一般的程序,使用下面这段程序就可以正常获取,但是,无法获取像“迅雷、迅雷看看、360”等程序的真正Pid,
Public aa As New Process
Public RunfilenName As String
Dim hwnd As IntPtr
aa.StartInfo.FileName = RunfilenName
aa.Start()
hwnd = aa.Id
Dim i As Int16 = 0
Do While 0 = hwnd And i < 500 ‘循环是为了等待相应程序打开,否则无法获取到
Thread.Sleep(10)
hwnd = aa.Id
i += 1
Loop
经测试使用
Dim Myprocess() As Process = Process.GetProcessesByName(aa.ProcessName),
可以获取进程信息,但Pid和上面的程序一样也不是不真正Pid