私は次のコードを使用しています:
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
。