我正在使用 JNA 隐藏一个特定的窗口,它工作正常,但我需要缩小我的整个项目。我想 JNA 中有很多我不需要的东西。有没有一种方法/工具可以在以下主要方法的情况下以编程方式删除所有从未调用过的东西?我的项目中有所有 JNA 类,而不仅仅是公共 jar 文件。
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;
import com.sun.jna.platform.win32.WinUser.WNDENUMPROC;
import com.sun.jna.win32.StdCallLibrary;
public class HideHwnd {
public interface User32 extends StdCallLibrary {
User32 INSTANCE = (User32) Native.loadLibrary("user32", User32.class);
boolean EnumWindows(WinUser.WNDENUMPROC lpEnumFunc, Pointer arg);
int GetWindowTextA(HWND hWnd, byte[] lpString, int nMaxCount);
boolean ShowWindow(HWND hWnd, int i);
}
public static void main(String[] args) {
final User32 user32 = User32.INSTANCE;
user32.EnumWindows(new WNDENUMPROC() {
public boolean callback(HWND hWnd, Pointer arg1) {
byte[] windowText = new byte[512];
user32.GetWindowTextA(hWnd, windowText, 512);
String wText = Native.toString(windowText);
if (wText.isEmpty()) {
return true;
}
if (wText.startsWith("window1")){
if (user32.ShowWindow(hWnd, 1))
System.out.println(wText+" is hidden now!");
}
return true;
}
}, null);
}
}
在此先感谢,汤姆