« CD/DVDとリムーバブルドライブの自動再生の有効/無効を切り替える。 | トップページ | PowerShellで画面全体やアクティブウィンドウのスナップショットを取得する。 »

2007年7月23日 (月)

画面全体やアクティブウィンドウのスナップショットを取得する。

WScript.ShellのSendKeys()では、PrintScreenキーを送ることができません。

Excelには、DLL関数を呼び出すCALLマクロと、
マクロを呼び出すExecuteExcel4Macroメソッドがあります。
これを利用して、スクリプトからWin32APIのkeybd_event()を呼び出します。

画面全体のスナップショットを取得します。

PrintScreen.VBS

Set Excel=CreateObject("Excel.Application")
Excel.ExecuteExcel4Macro "CALL(""user32"",""keybd_event"",""JJJJJ"",44,121,1,0)"
Excel.ExecuteExcel4Macro "CALL(""user32"",""keybd_event"",""JJJJJ"",44,121,3,0)"

アクティブウィンドウのスナップショットを取得します。

AltPrintScreen.VBS

Set Excel=CreateObject("Excel.Application")
Excel.ExecuteExcel4Macro "CALL(""user32"",""keybd_event"",""JJJJJ"",164,86,1,0)"
Excel.ExecuteExcel4Macro "CALL(""user32"",""keybd_event"",""JJJJJ"",44,121,1,0)"
Excel.ExecuteExcel4Macro "CALL(""user32"",""keybd_event"",""JJJJJ"",44,121,3,0)"
Excel.ExecuteExcel4Macro "CALL(""user32"",""keybd_event"",""JJJJJ"",164,86,3,0)"

« CD/DVDとリムーバブルドライブの自動再生の有効/無効を切り替える。 | トップページ | PowerShellで画面全体やアクティブウィンドウのスナップショットを取得する。 »