SysGet

提供: AutoHotkey Wiki
移動: 案内検索

実行制御 | GUI表示 | 演算・変数 | メモリ・DLL操作 | 文字列操作 | キーボード | マウス | シェル | ウィンドウ | ウィンドウグループ
ステータスバー | コントロール | サウンド | ファイル | INIファイル | レジストリ | 環境変数 | AutoHotkey | その他 | 設定関係 | オブジェクト

SysGet[編集]

画面解像度やマルチモニタ関連の情報、そのほかシステム関連の情報を取得。

SysGet, OutputVar, Sub-command [, Param3]

Parameters[編集]

引数名 説明
OutputVar 取得結果を格納する変数名
Sub-command 取得する情報を指定
Param3 一部サブコマンドで使用するオプション

Sub-commands[編集]

MonitorCount マルチモニタ環境でのモニタ数を取得。後述のSM_CMONITORSと違い、デスクトップの一部として使われていないモニタも数えられる。
MonitorPrimary 主モニタの番号を取得
Monitor [, N] 指定したモニタのデスクトップ領域での境界座標を取得。
N にモニタ番号を指定する。
N を省略した場合、主モニタの情報が取得される。
N に存在しないモニタ番号を指定した場合などは、結果の変数はすべて空になる。
結果は OutputVarLeft OutputVarTop OutputVarRight OutputVarBottomというような変数に格納される。
MonitorWorkArea [, N] モニタ番号N のタスクバーの部分を除いた境界座標を取得
MonitorName [, N] モニタ番号N のシステム名を取得
(数値) Sub-commandに下記で説明する番号を指定することで、各種の情報を取得できる。
名前 番号 説明
SM_CMONITORS 80 マルチモニタ環境でデスクトップ領域の表示に使用されているモニタの数を取得
SM_CMOUSEBUTTONS 43 マウスボタンの数 (マウスがないときは 0) を取得します。
SM_CXFULLSCREEN
SM_CYFULLSCREEN
16,17 最大化されたウィンドウのクライアント領域のサイズを取得します。
SM_CXMAXIMIZED
SM_CYMAXIMIZED
61,62 最大化されたウィンドウのサイズを取得します。
SM_CXMAXTRACK
SM_CYMAXTRACK
59,60 ウィンドウの最大トラッキングサイズを取得します。このサイズよりも大きくウィンドウの枠をドラッグすることはできません。アプリケーションで WM_GETMINMAXINFO メッセージを処理すると、最大トラッキングサイズが変更できます。
SM_CXMIN
SM_CYMIN
28,29 ウィンドウの最小サイズを取得します。
SM_CXMINIMIZED
SM_CYMINIMIZED
57,58 最小化されたウィンドウのデフォルトのサイズを取得します。
SM_CXMINTRACK
SM_CYMINTRACK
34,35 ウィンドウの最小トラッキングサイズを取得します。このサイズよりも小さくウィンドウの枠をドラッグすることはできません。アプリケーションで WM_GETMINMAXINFO メッセージを処理すると、最小トラッキングサイズが変更できます。
SM_CXSCREEN
SM_CYSCREEN
0,1 画面全体のサイズを取得します。
SM_CXVIRTUALSCREEN
SM_CYVIRTUALSCREEN
78,79 Windows 98 と Windows 2000:仮想画面の幅と高さをピクセル単位で取得します。仮想画面とは、すべてのモニタを囲む境界長方形のことです。SM_XVIRTUALSCREEN および SM_YVIRTUALSCREEN の各値は、仮想画面の左上隅の座標を表します。
SM_MOUSEPRESENT 19 マウスが接続されているかどうかを示す値を取得します。接続されているときは 0 以外の値が、接続されていないときは 0 が返ります。
SM_MOUSEWHEELPRESENT 75 ホイールを持つマウスが接続されているかどうかを示す値を取得します。接続されているときは 0 以外の値が、接続されていないときは 0 が返ります。
SM_NETWORK 63 ネットワークが存在するかどうかを示す値を取得します。存在するときは最下位ビットが 1 の値が、そうでないときは最下位ビットが 0 の値が返ります。最下位ビット以外のビットは予約されています。
SM_REMOTECONTROL 8193 リモートデスクトップで遠隔操作されているとき以外は 0、遠隔操作されているときはゼロ以外。
SM_REMOTESESSION 4096 この値は、Terminal Services 環境で使うことを意図しています。呼び出し側プロセスが Terminal Services のクライアントセッションに関連付けられている場合は 0 以外の値(TRUE)が返ります。呼び出し側プロセスが Terminal Services のコンソールセッションに関連付けられている場合 0(FALSE)が返ります。
SM_SHOWSOUNDS 70 ユーザー補助の サウンド解説を使うが有効になっているかどうかを調べます。有効になっているときは 0 以外の値が、そうでないときは 0 が返ります。
SM_SHUTTINGDOWN 8192 シャットダウン中で無ければ 0、シャットダウン中ならゼロ以外。
SM_SWAPBUTTON 23 左右のマウスボタンの機能を交換しているかどうかを示す値を取得します。交換しているときは 0 以外の値が、交換していないときは 0 が返ります。
SM_XVIRTUALSCREEN
SM_YVIRTUALSCREEN
76,77 Windows 98 と Windows 2000:仮想画面の左端と上端の座標を表します。仮想画面とは、すべてのモニタを囲む境界長方形のことです。SM_CXVIRTUALSCREEN および SM_CYVIRTUALSCREEN の各値は、仮想画面の幅と高さを表します。
SM_ARRANGE 56 最小化ウィンドウの配置方法を示す値を取得します。
SM_CLEANBOOT 67 システムがどのように起動されたかを示す値を取得します。次の値のいずれかになります。
0 通常のブート
1 Safe モードでのブート
2 ネットワークを使った Safe モードでのブート
SM_CXBORDER
SM_CYBORDER
5,6 非立体的なウィンドウの縁の幅と高さを取得します。SM_CXEDGE とSM_CYEDGE も参照してください。
SM_CXCURSOR
SM_CYCURSOR
13,14 マウスカーソルのサイズを取得します。
SM_CXDOUBLECLK
SM_CYDOUBLECLK
36,37 ダブルクリックにおける 2 回目のクリック位置の許容範囲を取得します。1 回目のクリックの後、許容範囲内かつ許容時間内にもう一度マウスをクリックすると、ダブルクリックが行れたものとみなされます。
SM_CXDRAG
SM_CYDRAG
68,69 ドラッグ操作の開始とはみなされない範囲を取得します。マウスボタンを押した後、この範囲を越えてマウスを動かすと、ドラッグ操作が開始されたものとみなされます。
SM_CXEDGE
SM_CYEDGE
45,46 立体的なウィンドウの縁の幅と高さを取得します。SM_CXBORDER とSM_CYBORDER の 3D 版です。
SM_CXFIXEDFRAME
SM_CYFIXEDFRAME
7,8 タイトルバーを持ち、かつ、サイズが変更できないウィンドウにおける枠の幅と高さを取得します。SM_CXDLGFRAME,SM_CYDLGFRAME と同じです。
SM_CXFOCUSBORDER
SM_CYFOCUSBORDER
83,84 コントロールのフォーカス枠の太さを取得
SM_CXHSCROLL
SM_CYHSCROLL
21,22 水平スクロールバーの矢印の幅、または、水平スクロールバーの高さを取得します。
SM_CXHTHUMB 10 水平スクロールバーのつまみの幅を取得します。
SM_CXICON
SM_CYICON
11,12 アイコンのデフォルトのサイズを取得します。通常は 32×32 ピクセルです。
SM_CXICONSPACING
SM_CYICONSPACING
38,39 アイコンを整列するときに使われるグリッドのサイズを取得します。常に、SM_CXICON,SM_CYICON 以上になります。
SM_CXMENUCHECK
SM_CYMENUCHECK
71,72 メニューのチェックマークのサイズを取得します。
SM_CXMENUSIZE
SM_CYMENUSIZE
54,55 メニューバーに表示されるボタンのサイズを取得します。
SM_CXMINSPACING
SM_CYMINSPACING
47,48 アイコンを整列するときに使われるグリッドのサイズを取得します。常に、SM_CXICON, SM_CYICON 以上になります
SM_CXSIZE
SM_CYSIZE
30,31 ウィンドウのタイトルバー内のボタンのサイズを取得します。
SM_CXSIZEFRAME
SM_CYSIZEFRAME
32,33 サイズが変更できるウィンドウにおける枠の幅と高さを取得します。SM_CXFRAME,SM_CYFRAME と同じです。
SM_CXSMICON
SM_CYSMICON
49,50 小さいアイコンの推奨サイズを取得します。
SM_CXSMSIZE
SM_CYSMSIZE
52,53 さいタイトルバー内のボタンのサイズを取得します
SM_CXVSCROLL
SM_CYVSCROLL
2,20 垂直スクロールバーの幅、または、垂直スクロールバーの矢印の高さを取得します。
SM_CYCAPTION 4 タイトルバーの高さを取得します。
SM_CYKANJIWINDOW 18 画面下の漢字ウィンドウの高さを取得します。
SM_CYMENU 15 一行分のメニューバーの高さを取得します。
SM_CYSMCAPTION 51 小さなタイトルバーの高さを取得します。
SM_CYVTHUMB 9 垂直スクロールバーのつまみの高さを取得します。
SM_DBCSENABLED 42 USER.EXE がダブルバイト文字セット (DBCS) をサポートしているかどうかを示す値を取得します。サポートしているときは 0 以外の値が、サポートしていないときは 0 が返ります。
SM_DEBUG 22 USER.EXE がデバッグバージョンかどうかを示す値を取得します。デバッグバージョンのときは 0 以外の値が、デバッグバージョンでないときは 0 が返ります。
SM_IMMENABLED 82 IME(Input Method Manager/Input Method Editor)機能が有効になっている場合は 0 以外の値(TRUE)が返ります。無効になっている場合は 0(FALSE)が返ります。
SM_IMMENABLED は、システムが Unicode ベースのアプリケーションで、Unicode ベースの IME を使う準備ができているかどうかを示します。特定の言語に依存する IME が動作するかどうか確認するには、SM_DBCSENABLED とシステムの ANSI コードページをチェックしてください。それ以外の場合、ANSI/Unicode 間の変換が正しく実行されないことや、フォントやレジストリエントリのようなコンポーネントが存在しないことがあります。
SM_MEDIACENTER 87 OSがWindows XP Media Center Editionの場合ゼロ以外。
SM_MENUDROPALIGNMENT 40 メニューバーの項目に対して、ドロップダウンメニューが右寄せされるかどうかを示す値を取得します。右寄せされるときは 0 以外の値が、左寄せされるときは 0 が返ります。
SM_MIDEASTENABLED 74 ヘブライ語やアラビア語が利用可能なシステムかどうかを示す値を取得します。利用できるときは TRUE が返ります。
SM_PENWINDOWS 41 Window for Pen computing extensions がインストールされているかどうかを示す値を取得します。インストールされているときは 0 以外の値が、インストールされていないときは 0 が返ります。
SM_SECURE 44 セキュリティが存在するかどうかを示す値を取得します。存在するときは TRUE が、存在しないときは FALSE が返ります。
SM_SAMEDISPLAYFORMAT 81 複数のモニタが存在する場合、すべてのモニタが同じカラーフォーマットを使っているかどうかを表す値を取得します。すべてのモニタが同じカラーフォーマットを使っている場合、0 以外の値(TRUE)が返ります。それ以外の場合、0(FALSE)が返ります。2 台のモニタが同じ色深度(ビット数)を使っていても、カラーフォーマットが異なる可能性があることに注意してください。たとえば、各ピクセルの RGB のビット数が異なっている(16 ビットの場合 RGB が 565 というのが一般的ですが、アルファブレンディング;輝度の 1 ビットを追加して ARGB1555 という組み合わせもあります)ことや、RGB の順序が異なっていることもあります。
SM_SLOWMACHINE 73 コンピュータのプロセッサが遅いかどうかを示す値を取得します。遅いときは TRUE が、それ以外のときは FALSE が返ります。
SM_TABLETPC 86 OSがWindows XP Tablet PCの場合ゼロ以外。

Remarks[編集]

プライマリモニタの横幅と高さはA_ScreenWidth/A_ScreenHeight変数で参照できる

Related[編集]

DllCall(), WinGet

Example(s)[編集]

; Example #1:
SysGet, MouseButtonCount, 43
SysGet, VirtualScreenWidth, 78
SysGet, VirtualScreenHeight, 79

; Example #2: This is a working script that displays info about each monitor:
SysGet, MonitorCount, MonitorCount
SysGet, MonitorPrimary, MonitorPrimary
MsgBox, Monitor Count:`t%MonitorCount%`nPrimary Monitor:`t%MonitorPrimary%
Loop, %MonitorCount%
{
  SysGet, MonitorName, MonitorName, %A_Index%
  SysGet, Monitor, Monitor, %A_Index%
  SysGet, MonitorWorkArea, MonitorWorkArea, %A_Index%
  MsgBox, Monitor:`t#%A_Index%`nName:`t%MonitorName%`nLeft:`t%MonitorLeft% (%MonitorWorkAreaLeft% work)`nTop:`t%MonitorTop% (%MonitorWorkAreaTop% work)`nRight:`t%MonitorRight% (%MonitorWorkAreaRight% work)`nBottom:`t%MonitorBottom% (%MonitorWorkAreaBottom% work)
}