【问题标题】:Detect if On Screen Keyboard is open检测屏幕键盘是否打开
【发布时间】:2015-06-04 12:28:57
【问题描述】:

我想检查 OSK.exe 进程(屏幕键盘)是否打开。

这是我打开 OSK 的代码:

Process.Start("C:\\Windows\\System32\\osk.exe");

您有什么想法可以检查它并防止启动两次或更多次此过程吗?

【问题讨论】:

标签: c# .net wpf on-screen-keyboard


【解决方案1】:

您可以按如下名称获取正在运行的进程:

var arrProcs = Process.GetProcessesByName("osk");
if (arrProcs.Length == 0)
{
   Process.Start("C:\\Windows\\System32\\osk.exe");
}

【讨论】:

    【解决方案2】:

    有2个方面: 1. 进程已经被您的应用程序打开。在这种情况下,您已经知道 PID。方法是尝试查看具有该 PID 的进程是否正在运行。

    Process[] processlist = Process.GetProcesses();
    bool proccessRunning = false;
    foreach(Process theprocess in processlist){
       if( theprocess.Id == yourPID) 
       {
           proccessRunning = true;
           break;
       }        
    }
    

    2。进程是在您的应用程序之外启动的。通过列出所有进程并循环查找 proc o 按名称查找进程

    【讨论】:

      猜你喜欢
      • 2014-01-20
      • 1970-01-01
      • 2015-11-20
      • 2011-09-01
      • 2016-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多