我想在我的Java应用程序中检查windows虚拟键盘是否已经在运行。
我搜索了一下,发现了,我可以使用
wmic.exe
以搜索进程。
这就是我正在做的:
Process proc = Runtime.getRuntime().exec("wmic.exe");
BufferedReader input = new BufferedReader(new InputStreamReader(proc
.getInputStream()));
OutputStreamWriter oStream = new OutputStreamWriter(proc
.getOutputStream());
oStream .write("process where name='osk.exe' get caption");
oStream .flush();
oStream .close();
input.readLine();
while ((in = input.readLine()) != null) {
if (in.contains("osk.exe")) {
input.close();
proc.destroy();
return;
}
}
input.close();
proc.destroy();
这是有效的,但是
wmic
正在以某种方式创建文件
TempWmicBatchFile.bat
与线路
process where name='osk.exe' get caption
。
我该如何防止这种情况发生?