画面上で現在開いているウィンドウを整理するスクリプトを書きたいと思います。
例: すべてのブラウザーをモニター 1 に移動し、その他すべてをモニター 2 に移動します。
これにはVBScriptが適していると思いますか?Win7 環境でこれに使用するオブジェクトは何ですか?
画面上で現在開いているウィンドウを整理するスクリプトを書きたいと思います。
例: すべてのブラウザーをモニター 1 に移動し、その他すべてをモニター 2 に移動します。
これにはVBScriptが適していると思いますか?Win7 環境でこれに使用するオブジェクトは何ですか?
これは、ウィンドウ管理に使用される Windows API へのアクセスを提供しないため、すぐに使える VBScript では不可能です。
AutoItは、この仕事に適したツールのようです。次の関数とマクロを調べてください。
WinMove
- ウィンドウを移動する_WinAPI_GetSystemMetrics
(80)
- モニターの数を取得します@DesktopWidth
および@DesktopHeight
- プライマリ モニターのピクセル サイズ_WinAPI_GetSystemMetrics(78)
および_WinAPI_GetSystemMetrics(79)
- デスクトップ全体の幅と高さモニターのサイズが異なる場合は、WMI クラスとそのプロパティを使用して、Win32_DesktopMonitor
個々のモニターのサイズを取得できます。ScreenWidth
ScreenHeigth
VBSがこれに適していると言えるかどうかはわかりませんが、C++の方が簡単だと思うWindows API呼び出しが含まれるため、これにはC++を好むと思いますが、それはあなたのスキルとVBSに依存します大丈夫かもしれません。
私が調べる API 呼び出しは、移動するウィンドウを見つけるためのEnumWindowsまたはFindWindowであり、次にそれらを移動するためのSetWindowPosです。
それらをセカンダリモニターに移動したい場合は、プライマリモニターの外側の位置に移動することで実行できるはずです(たとえば、セカンダリモニターが左側に伸びている場合は負の位置になる可能性があります)。これを行うには、現在の解像度と、WMI クラスWin32_VideoControllerから取得できると思われるものを見つけることができる必要があります。