【发布时间】:2013-10-25 15:43:17
【问题描述】:
每当我从 Visual Studio 2012 中启动我的程序时,它都会正确执行以下代码:
int oskID = System.Diagnostics.Process.Start("c:\\WINDOWS\\system32\\osk.exe").Id;
Thread.Sleep(1500);
System.Diagnostics.Process.GetProcessById(oskID).Kill();
但是,当我从 VS 2012 外部运行 .exe 时,您只需对每个程序执行此操作,OSK 将不会关闭,并且会提示我以下错误:带有 id 的进程......没有被执行。
关闭特定 OSK 的正确方法是什么?我的代码有什么问题?以管理员身份运行不会改变任何内容。
【问题讨论】:
-
也许你应该打电话给WaitForInputIdle?
-
必须是 OSK 吗?我知道这更像是某种启动器。
-
如果我调用 WaitFOrInputIdle 我会收到拒绝访问错误。是的,它必须是 OSK。
标签: c# on-screen-keyboard