秀丸ウィンドウの存在しているモニター情No.09215
arkangel さん 20/04/13 11:23
 
現在のモニター番号は「monitor」で取得可能ですが、
現在のモニターの解像度・作業領域サイズを取得したいのです。

下記の関数は、
秀丸ウィンドウが存在しているモニター情報を取得するためのもの
と思っていましたが、常にメインモニターの情報しか取得できないようです。
「xworkarea, yworkarea」
 ⇒ 常に 0,0
「cxworkarea, cyworkarea」
 ⇒ 常に 1920, 1040 (メインモニターがFullIDの場合)

メインモニター以外の情報を取得することはできないのでしょうか??

[ ]
RE:09215 秀丸ウィンドウの存在しているモNo.09216
秀丸担当 さん 20/04/14 18:17
 

秀丸エディタのマクロのキーワードとしては、マルチモニタの各画面のワークエリア
は取得できないです。
もし画面を移動して、ワークエリアいっぱいに最大化した位置に表示したいというこ
とであれば、
setmonitor 1;
showwindow 3;
とかすると一応できます。

一般的なこととして、VBSやJScriptでできるとしら、秀丸マクロの文法のcreateobje
ct等に書き換えるとできる方法があります。
検索してみたら、winmgmtsなんとかのWin32_DesktopMonitorとかで、昔のWindowsは
できるようでした。
でも、なぜか最近のWindowsはできないみたいです。

他にはpowershellで.netのライブラリを呼んでとかできるみたいです。
かなり無理矢理ですが、以下のようなマクロ(というかpowershellを実行しているだ
けですが)で出力させることはできるようです。
runex "powershell -Command Add-Type -AssemblyName System.Windows.Forms; [Sys
tem.Windows.Forms.Screen]::AllScreens"
    , 1
    , 0,""
    , 4, "";
endmacro;

[ ]