我正在使用以下代码:
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
。