使用
Process p = Process.Start(start.exe);
IntPtr h = p.MainWindowHandle;Process p2 = Process.Start(start.exe);
IntPtr h2 = p2.MainWindowHandle;变量h可以获得这个start.exe的句柄
但是 再打开一个start.exe 变量h2 就获得不了这个句柄了,必须关闭前一个程序才可以,有没有方法 解决?
Process p = Process.Start(start.exe);
IntPtr h = p.MainWindowHandle;Process p2 = Process.Start(start.exe);
IntPtr h2 = p2.MainWindowHandle;变量h可以获得这个start.exe的句柄
但是 再打开一个start.exe 变量h2 就获得不了这个句柄了,必须关闭前一个程序才可以,有没有方法 解决?
Process p2 = Process.Start(start.exe); 这句有没有真正打开start.exe?如果打开了应该可以获取的到的
private void StartInfo()
{
ProcessStartInfo start = new ProcessStartInfo();
start.FileName = "C:\\start.exe";
try
{
Process p = Process.Start(start);
while(!p.WaitForInputIdle()) {}
IntPtr h = p.MainWindowHandle;
}
catch ()
{
return;
} }//两个按钮 分别启动两次,第一次可以,h的值不为o,第二次h就为o了
private void button1_Click(object sender, EventArgs e)
{
StartInfo();
}
private void button2_Click(object sender, EventArgs e)
{
StartInfo();
}
我加上了 while (!p2.WaitForInputIdle()) { }
还是不行有没有别的方法 打开多个程序获得句柄?
Process p = Process.Start(start);
while(!p.WaitForInputIdle()) {}
Process l = Process.GetProcessById(p.Id);
Thread.Sleep(1000);
IntPtr h = l.MainWindowHandle;如果不行可能只能用FindWindow了