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 に答える