正常に動作する JNA を使用して特定のウィンドウを非表示にしていますが、プロジェクト全体を縮小する必要があります。JNAには必要のないものがたくさんあると思います。プログラムで次のメインメソッドの場合に呼び出されなかったすべてのものを削除する方法/ツールはありますか? 共通のjarファイルだけでなく、プロジェクト内にすべてのJNAクラスがあります。
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);
}
}
前もってありがとう、トム