プログラマメモ2 - programmer no memo2

java window SetWindowPosのまたちがった使用方法 - 隠れたwindowを表にだす方法として使えるか? 2007/07/10
2007/07/19

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 でアクティブにならない場合には?

: