5
Windows 바탕 화면에서 실행중인 모든 응용 프로그램을 찾는 방법은 java를 사용하여 최소화 된 상태입니까?실행중인 응용 프로그램을 찾는 방법은 java?
Windows 바탕 화면에서 실행중인 모든 응용 프로그램을 찾는 방법은 java를 사용하여 최소화 된 상태입니까?실행중인 응용 프로그램을 찾는 방법은 java?
는 먼저 downloadjna.jar 및 platform.jar 필요하고 클래스 패스에 추가합니다. MSDN documentation을보고 Windows 시스템 호출을 알아낼 수 있습니다.
import com.sun.jna.Native;
import com.sun.jna.Pointer;
import com.sun.jna.platform.win32.WinDef.HWND;
import com.sun.jna.platform.win32.WinUser.WINDOWINFO;
import com.sun.jna.platform.win32.WinUser.WNDENUMPROC;
public class Minimized {
private static final int MAX_TITLE_LENGTH = 1024;
private static final int WS_ICONIC = 0x20000000;
public static void main(String[] args) throws Exception {
User32.EnumWindows(new WNDENUMPROC() {
@Override
public boolean callback(HWND arg0, Pointer arg1) {
WINDOWINFO info = new WINDOWINFO();
User32.GetWindowInfo(arg0, info);
// print out the title of minimized (WS_ICONIC) windows
if ((info.dwStyle & WS_ICONIC) == WS_ICONIC) {
byte[] buffer = new byte[MAX_TITLE_LENGTH];
User32.GetWindowTextA(arg0, buffer, buffer.length);
String title = Native.toString(buffer);
System.out.println("Minimized window = " + title);
}
return true;
}
}, 0);
}
static class User32 {
static { Native.register("user32"); }
static native boolean EnumWindows(WNDENUMPROC wndenumproc, int lParam);
static native void GetWindowTextA(HWND hWnd, byte[] buffer, int buflen);
static native boolean GetWindowInfo(HWND hWnd, WINDOWINFO lpwndpl);
}
}
: 여기
모든 최소화 된 창을 통해 열거하는 코드입니다