VBScript と VB.NET スクリプトでモニタの電源をオフにしたりオンにしたり
VBScript と VB.NET から、Excel が持つ API を利用して、モニタの電源をオンにしたり、オフにしたりしてみる。
VBScript でモニタの電源をオン・オフ
- モニタの電源を切る
Mshta vbscript:execute("CreateObject(""Excel.Application"").ExecuteExcel4Macro "CALL(""""user32"""", """"SendMessageA"""", """"JJJJJ"""", -1, 274, 61808, 2)"":close")
- モニタの電源を付ける
Mshta vbscript:execute("CreateObject(""Excel.Application"").ExecuteExcel4Macro "CALL(""""user32"""", """"SendMessageA"""", """"JJJJJ"""", -1, 274, 61808, -1)"":close")
VB.NET でモニタの電源をオン・オフ
- モニタの電源を切る
- 以下のスクリプトを
MonitorPowerOff.vb
として保存し、> Vbc /t:winexe MonitorPowerOff.vb
でコンパイルする。
- 以下のスクリプトを
Public Class Class1
Private Declare Function SendMessageA Lib "user32" (hWnd As Integer, Msg As Integer, wParam As Integer, IParam As Integer) As Integer
Public Shared Sub Main()
SendMessageA(-1, 274, 61808, 2)
End Sub
End Class
- モニタの電源を付ける
- 以下のスクリプトを
MonitorPowerOn.vb
として保存し、> Vbc /t:winexe MonitorPowerOn.vb
でコンパイルする。
- 以下のスクリプトを
Public Class Class1
Private Declare Function SendMessageA Lib "user32" (hWnd As Integer, Msg As Integer, wParam As Integer, IParam As Integer) As Integer
Public Shared Sub Main()
SendMessageA(-1, 274, 61808, -1)
End Sub
End Class
中身をよく見れば分かるが、SendMessageA に 2
を渡すと電源オフ、-1
を渡すと電源オン、となる。
タイマー的にモニタの電源を切るスクリプトを作る時とかにドウゾ。