[ 新規に投稿する ]

秀丸ウィンドウの存在しているモニター情報の取得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でできるとしら、秀丸マクロの文法のcreateobject等に書き換えるとできる方法があります。
検索してみたら、winmgmtsなんとかのWin32_DesktopMonitorとかで、昔のWindowsはできるようでした。
でも、なぜか最近のWindowsはできないみたいです。

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

[ 新規に投稿する ]