Здравствуйте, я работаю над программой, которая использует JNA 4.5.1.Мне нужно знать, работает ли конкретная программа или нет.Вот моя проблема:
hwnd = User32.INSTANCE.FindWindow
(null, "Session Dev/Prod - [32 x 80]");
if (hwnd == null) {
System.out.println("Session Dev/Prod is not running");
Process p = null;
try {
p = Runtime.getRuntime()
.exec("rundll32
url.dll,FileProtocolHandler C:
/ProgramData/Microsoft/Windows/Start
Menu/Programs/IBM Personal
Communications/TNHost");
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
p.waitFor();
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
else{
System.out.println("Host Already open");
User32.INSTANCE.ShowWindow(hwnd, User32.SW_MAXIMIZE );
User32.INSTANCE.SetForegroundWindow(hwnd);
}
Проблема в том, что заголовок окна изменяется в зависимости от размера монитора.
hwnd = User32.INSTANCE.FindWindow(null, "Session Dev/Prod - [32 x 80]");
Заголовок всегда "Сессия"Dev / Prod "+ размер, который изменяется.
Мне нужно найти окно, которое начинается с" Session Dev / Prod ".Кто-нибудь знает как это сделать.Или есть другой способ узнать, запущена программа или нет?Я пытался сделать это с Regex в качестве параметра, но функция принимает только строку.
Спасибо