C# 杀死 OSK,在调试中工作,而不是直接运行时

本文关键字:运行时 OSK 杀死 调试 工作 | 更新日期: 2023-09-27 18:36:51

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

C# 杀死 OSK,在调试中工作,而不是直接运行时

关闭一个特定 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();
        }