スクリプトからコンソールウィンドウの「すべて選択」「コピー」「貼り付け」
コンソールウィンドウの編集メニューをスクリプトから操作するには?
コンソールウィンドウに、SendKeys "Alt+ "しても効きません。
そこで、Excelを使って、Win32APIのSendMessageを呼び出します。
ConsoleCopy.VBS [ウィンドウタイトル]
ウィンドウタイトルで指定したコンソールウィンドウで、
「すべて選択」してクリップボードに「コピー」します。
Set Application=CreateObject("Excel.Application")
If WScript.Arguments.Count() Then
Title=WScript.Arguments.Item(0)
End If
Do
If Title<>"" Then
hwnd=Application.ExecuteExcel4Macro("CALL(""user32"",""FindWindowA"",""JCC"",""ConsoleWindowClass"","""&Title&""")")
Else
hwnd=Application.ExecuteExcel4Macro("CALL(""user32"",""FindWindowA"",""JCJ"",""ConsoleWindowClass"",0)")
End If
If hwnd Then
Application.ExecuteExcel4Macro( "CALL(""user32"",""SendMessageA"",""JJJJJ""," & hwnd & ",273,65525,0)")
Application.ExecuteExcel4Macro( "CALL(""user32"",""SendMessageA"",""JJJJJ""," & hwnd & ",273,65520,0)")
Exit Do
End If
Title=InputBox("ウィンドウが見つかりません。",WScript.ScriptName,Title)
Loop Until IsEmpty(Title)
ConsolePaste.VBS [ウィンドウタイトル]
ウィンドウタイトルで指定したコンソールウィンドウに、
クリップボードから「貼り付け」ます。
ウィンドウタイトルを省略すると、最初に見つかったコンソールウィンドウを
操作します。
コンソールウィンドウが見つからない場合、ウィンドウタイトルを
プロンプトします。
Set Application=CreateObject("Excel.Application")
If WScript.Arguments.Count() Then
Title=WScript.Arguments.Item(0)
End If
Do
If Title<>"" Then
hwnd=Application.ExecuteExcel4Macro("CALL(""user32"",""FindWindowA"",""JCC"",""ConsoleWindowClass"","""&Title&""")")
Else
hwnd=Application.ExecuteExcel4Macro("CALL(""user32"",""FindWindowA"",""JCJ"",""ConsoleWindowClass"",0)")
End If
If hwnd Then
Application.ExecuteExcel4Macro( "CALL(""user32"",""SendMessageA"",""JJJJJ""," & hwnd & ",273,65521,0)")
Exit Do
End If
Title=InputBox("ウィンドウが見つかりません。",WScript.ScriptName,Title)
Loop Until IsEmpty(Title)
« スクリプトでクリックボードを使う。 | トップページ | PowerShellで、自分のコンソールウィンドウを最小化、最大化、元に戻す。 »