Для отслеживания открытых приложений в Windows вы можете использовать Java Native Access (JNA) или JavaFX.
1. JNA: JNA позволяет вызывать функции из динамически подключаемых библиотек (DLL) операционной системы. Вам нужно будет использовать функции из библиотеки user32.dll, которая содержит информацию о текущих окнах. Вот пример кода, который позволяет определить активное окно:
```java
import com.sun.jna.Native;
import com.sun.jna.Pointer;
import com.sun.jna.platform.win32.User32;
import com.sun.jna.platform.win32.WinDef;
import com.sun.jna.platform.win32.WinDef.HWND;
import com.sun.jna.platform.win32.WinDef.RECT;
public class ActiveWindowTracker {
public static void main(String[] args) {
User32 user32 = User32.INSTANCE;
HWND hwnd = user32.GetForegroundWindow();
char[] buffer = new char[1024];
user32.GetWindowText(hwnd, buffer, buffer.length);
String windowName = Native.toString(buffer);
RECT rect = new RECT();
user32.GetWindowRect(hwnd, rect);
System.out.println("Active window: " + windowName);
System.out.println("Window position: " + rect.left + ", " + rect.top);
System.out.println("Window size: " + (rect.right - rect.left) + " x " + (rect.bottom - rect.top));
}
}
```
2. JavaFX: JavaFX предоставляет класс `Stage` для работы с окнами приложений. Вы можете использовать метод `isFocused()`, чтобы определить, является ли окно активным:
```java
import javafx.application.Application;
import javafx.stage.Stage;
public class ActiveWindowTracker extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
primaryStage.focusedProperty().addListener((obj, oldValue, newValue) -> {
if (newValue) {
System.out.println("Active window: " + primaryStage.getTitle());
}
});
// Дополнительный код вашего приложения...
}
}
```
Это простые примеры, которые помогут вам начать отслеживание активных окон в Windows с использованием Java. Обратите внимание, что код должен быть выполнен в операционной системе Windows, поскольку он использует функции и библиотеки, специфичные для данной платформы.