0

每当我从 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 的正确方法是什么?我的代码有什么问题?以管理员身份运行不会改变任何东西。

4

1 回答 1

1

关闭一个特定 OSK 的正确方法是什么?

是否可以打开多个 OSK 实例?

这个怎么样?

        System.Diagnostics.Process.Start("c:\\WINDOWS\\system32\\osk.exe");
        Thread.Sleep(1500);
        foreach (System.Diagnostics.Process p in System.Diagnostics.Process.GetProcessesByName("osk"))
        {
            p.Kill();
        }
于 2013-10-25T16:42:39.107 回答