我想知道OSK.exe进程(屏幕键盘)是否打开。
这是打开OSK的代码:
Process.Start("C:\\Windows\\System32\\osk.exe");
您是否有任何想法如何检查它并阻止启动两次以上此过程?
答案 0 :(得分:9)
您可以通过以下名称获得正在运行的流程:
var arrProcs = Process.GetProcessesByName("osk");
if (arrProcs.Length == 0)
{
Process.Start("C:\\Windows\\System32\\osk.exe");
}
答案 1 :(得分:1)
有两个方面: 1.您的申请已经开放流程。在这种情况下,您已经知道PID。要做的就是尝试查看具有该PID的进程是否正在运行。
Process[] processlist = Process.GetProcesses();
bool proccessRunning = false;
foreach(Process theprocess in processlist){
if( theprocess.Id == yourPID)
{
proccessRunning = true;
break;
}
}
2。流程在您的应用外部启动。通过列出所有进程并循环来查找proc。按名称查找进程