2017年9月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
無料ブログはココログ

« WScript.Echo()で文字色や背景色などを変更する。 | トップページ | コマンドラインで、サスペンド(スリープ)、ハイバネーション(休止)する。(その6) »

2009年9月16日 (水)

WScript.Echo()で文字色や背景色などを変更する。(その2)

スクリプトからExcel経由でWin32APIを呼び出します。

Set Application=CreateObject("Excel.Application")
hwnd=Application.ExecuteExcel4Macro("CALL(""user32"",""FindWindowA"",""JCJ"",""ConsoleWindowClass"",0)")
pid=Application.ExecuteExcel4Macro("CALL(""user32"",""GetWindowThreadProcessId"",""2JN"","& hwnd &","& pid &")")
Call Application.ExecuteExcel4Macro("CALL(""kernel32"",""AttachConsole"",""JJ""," & pid & ")")
hConsole=Application.ExecuteExcel4Macro("CALL(""kernel32"",""CreateFileA"",""JCJJJJJJ"",""CONOUT$"",-1073741824,3,0,3,0,0)")

Echo 12,"赤"
Echo 9,"青"
Echo 14,"黄"
Echo &Hca,"赤"
Echo &H9a,"青"
Echo &Hea,"黄"
Echo 7,""

Call Application.ExecuteExcel4Macro("CALL(""kernel32"",""CloseHandle"",""JJ""," & hConsole & ")")

Sub Echo(wAttribute,Text)
Call Application.ExecuteExcel4Macro("CALL(""kernel32"",""SetConsoleTextAttribute"",""JJJ""," & hConsole & "," & wAttribute & ")")
WScript.StdOut.Write Text
End Sub

« WScript.Echo()で文字色や背景色などを変更する。 | トップページ | コマンドラインで、サスペンド(スリープ)、ハイバネーション(休止)する。(その6) »