java window SetWindowPosのまたちがった使用方法 - 隠れたwindowを表にだす方法として使えるか?
2007/07/10
2007/07/19
java
windowsで隠れたjava画面を表にだすためのアイデア
使えるだろうか。
javaバージョンは1.4
プラットフォームはwindows XP
eclipseのswtを使用している。
他にもいろいろ使用してみたのだけども、画面が表にでてくる方法をみつけることができなかった。
単純だけど、下記のコードは効果があった。
final int hWnd = OS.FindWindow(null, new TCHAR(OS.CP_INSTALLED,
windowTitle, true));
if (hWnd == 0) {
System.out.println("failed find window:[" + hWnd + "]");
return;
}
RECT rect = new RECT();
OS.GetWindowRect(hWnd, rect);
System.out.println("rect=" + rect.left + " " + rect.top + " "
+ rect.right + " " + rect.bottom);
RECT client = new RECT();
OS.GetClientRect(hWnd, client);
POINT pt = new POINT();
OS.ClientToScreen(hWnd, pt);
OS.SetWindowPos(hWnd, OS.HWND_TOPMOST, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, OS.SWP_ASYNCWINDOWPOS);
OS.HWND_TOPMOSTだとずーとトップに画面がでっぱなしになるので、これをOS.HWND_TOPと変更するとよいです。
もとねたはVBのコードから
SetForegroundWindow でアクティブにならない場合には?
: