Dienstag, August 06, 2013

VBS wscript, beep, Powershell

Problem
für ein umfangreiches vbs script soll eine akustische Meldung ergänzt werden, ohne große Umschreibung und Betriebssystem fremde Tools. Mit VBA könnte man mit

LPrivate Declare Function Beep Lib _
    "kernel32" (ByVal dwFreq As Long, _
    ByVal dwDuration As Long) As Long

auf kernel32.exe zugreifen und beep(Frequenz,Dauer) nutzen

Das geht aber nicht mit vbs.

Lösung
Wir nehmen Powershell hinzu und nutzen gleich noch das .net [console] Objekt.
Die folgenden Zeilen ergänzen das .vbs script und lassen es dreimal tuten.

set wshell = CreateObject("Wscript.shell")
wshell.run("c:\windows\system32\WindowsPowerShell\v1.0\powershell.exe ""1..3|%{[console]::beep(440,1000);start-sleep(1)}""")

Keine Kommentare: