检测屏幕键盘是否打开
Detect if On Screen Keyboard is open
我想检测 OSK.exe 进程(屏幕键盘)是否打开。
这是我打开OSK的代码:
Process.Start("C:\Windows\System32\osk.exe");
你有什么想法可以检查它并防止启动两次或更多次这个过程吗?
您可以按如下名称获得一个 运行 进程:
var arrProcs = Process.GetProcessesByName("osk");
if (arrProcs.Length == 0)
{
Process.Start("C:\Windows\System32\osk.exe");
}
有2个方面:
1. 您的应用程序已经打开流程。在这种情况下,您已经知道 PID。方法是尝试查看具有该 PID 的进程是否为 运行.
Process[] processlist = Process.GetProcesses();
bool proccessRunning = false;
foreach(Process theprocess in processlist){
if( theprocess.Id == yourPID)
{
proccessRunning = true;
break;
}
}
2。流程是在您的应用程序之外启动的。通过列出所有进程并循环查找进程 o 按名称查找进程
我想检测 OSK.exe 进程(屏幕键盘)是否打开。
这是我打开OSK的代码:
Process.Start("C:\Windows\System32\osk.exe");
你有什么想法可以检查它并防止启动两次或更多次这个过程吗?
您可以按如下名称获得一个 运行 进程:
var arrProcs = Process.GetProcessesByName("osk");
if (arrProcs.Length == 0)
{
Process.Start("C:\Windows\System32\osk.exe");
}
有2个方面: 1. 您的应用程序已经打开流程。在这种情况下,您已经知道 PID。方法是尝试查看具有该 PID 的进程是否为 运行.
Process[] processlist = Process.GetProcesses();
bool proccessRunning = false;
foreach(Process theprocess in processlist){
if( theprocess.Id == yourPID)
{
proccessRunning = true;
break;
}
}
2。流程是在您的应用程序之外启动的。通过列出所有进程并循环查找进程 o 按名称查找进程