我正在使用以下代码:
if (!running()) // make sure osk is not running
_process = Process.Start(@"c:\windows\system32\osk.exe");
for (int bailout = 0; bailout < 50; bailout++)
{
if (_process.MainWindowHandle != IntPtr.Zero)
{
break;
}
Thread.Sleep(100);
_process.Refresh();
}
它似乎适用于大多数计算机但不是全部..
(我已经尝试增加'救助'和睡眠时间。)
我退出循环而没有收到MainWindowHandle
。