Corredor

ウェブ、プログラミングの勉強メモ。

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")

VBScript実用プログラミング・テクニック―正規表現、OOP、SQLを応用した実用ツールの作成技法

VBScript実用プログラミング・テクニック―正規表現、OOP、SQLを応用した実用ツールの作成技法

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 を渡すと電源オン、となる。

タイマー的にモニタの電源を切るスクリプトを作る時とかにドウゾ。

VB.NET基礎学習Bible―270例題で学ぶプログラミングの散歩道

VB.NET基礎学習Bible―270例題で学ぶプログラミングの散歩道