Hallo,
ich habe mir eine kleine Methode geschrieben, die mir unter Windows die Bildschirmtastatur starten soll. Ist der Prozess schon gestartet, soll der Prozess beendet werden.
Da ich gerade unter Windows 7 entwickle und sich die exe der Bildschirmtastatur im per UAC geschützten Verzeichniss "Windows\system32" befindet, kann ich sie nur über den Umweg der Commandline (cmd.exe) starten.:
Wie ich der API-Doku entnehme, kann ich mit
den Prozess wieder beenden, nur handelt es sich dabei leider um den Commandline-Prozess und nicht den vom ihm aus gestarteten Bildschirmtastatur-Prozess. Ich habs jetzt schon mit "taskkill /im osk.exe" über den Commandline-Prozess probiert, aber da fehlen dann wieder die Rechte.
Hat vielleicht schon jemand ein Problem dieser Art lösen können?
vielen Dank,
Soahc
ich habe mir eine kleine Methode geschrieben, die mir unter Windows die Bildschirmtastatur starten soll. Ist der Prozess schon gestartet, soll der Prozess beendet werden.
Java:
private Process systemKeyBoardProzess;
private void showSystemKeyBoard(){
try {
if(systemKeyBoardProzess!=null){
try{
systemKeyBoardProzess.exitValue();
}catch(IllegalThreadStateException e){
System.out.println("beenden");
systemKeyBoardProzess.destroy();
systemKeyBoardProzess = null;
return;
}
}
String sysroot = System.getenv("SystemRoot");
ProcessBuilder builder = new ProcessBuilder(new String[] {"cmd.exe", "/C", sysroot + "//system32//osk.exe"});
systemKeyBoardProzess = builder.start();
} catch (IOException e) {
e.printStackTrace();
}
}
Da ich gerade unter Windows 7 entwickle und sich die exe der Bildschirmtastatur im per UAC geschützten Verzeichniss "Windows\system32" befindet, kann ich sie nur über den Umweg der Commandline (cmd.exe) starten.:
Java:
ProcessBuilder builder = new ProcessBuilder(new String[] {"cmd.exe", "/C", sysroot + "//system32//osk.exe"});
systemKeyBoardProzess = builder.start();
Wie ich der API-Doku entnehme, kann ich mit
Java:
systemKeyBoardProzess.destroy();
den Prozess wieder beenden, nur handelt es sich dabei leider um den Commandline-Prozess und nicht den vom ihm aus gestarteten Bildschirmtastatur-Prozess. Ich habs jetzt schon mit "taskkill /im osk.exe" über den Commandline-Prozess probiert, aber da fehlen dann wieder die Rechte.
Hat vielleicht schon jemand ein Problem dieser Art lösen können?
vielen Dank,
Soahc
Zuletzt bearbeitet: