Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
Set WSHShell = CreateObject("WScript.Shell")
'Der Titel des Fensters von SNDVOL32.EXE lautet "Lautstärke" oder "Play Control"
'Wenn die Anwendung schon läuft, dann wird sie aktiviert und mit SendKeys stummgeschaltet.
'Sollte sie noch nicht laufen, wird sie kurzerhand gestartet. Funktioniert jetzt auch
'unter Windows XP
FensterTitel1 = "Lautstärke"
FensterTitel2 = "Play Control"
If Not (WSHShell.AppActivate(FensterTitel1)) And Not (WSHShell.AppActivate(FensterTitel2)) Then WSHShell.Run "Sndvol32.exe"
'Ab dieser Stelle, wissen wir, dass SNDVOL32.EXE auf jeden Fall läuft.
'Jetzt ergibt sich das Problem, dass Sendkeys nicht weiss, wann die Anwendung
'richtig initialisiert ist und auf Tastaturkommandos reagiert.
'Damit SendKeys nicht ins Leere läuft, überprüfen wir, wann "Lautstärke" reagiert.
If Not (WartenBisAktiv(FensterTitel1, 5)) And Not (WartenBisAktiv(FensterTitel2, 5)) Then
Wscript.Echo ("Die Lautstärkeregelung konnte nicht initialisieert werden. Eventuell hat die Soundkarte ein eigenes Programm zur Lautstärkeregelung installiert.")
Wscript.Quit
End If
On Error Resume Next
OS = WSHShell.RegRead("HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProductName")
If InStr(OS, "XP") Then
WSHShell.SendKeys "%(t)"
WSHShell.SendKeys " "
Else
WSHShell.SendKeys "%(l)"
End If
'Die folgende Zeile schliesst die Lautstärkenregelung sofort wieder
WSHShell.SendKeys "%{F4}"
'Die Funktion WartenBisAktiv(FensterTitel, Zeitlimit) ist nichts anderes, als ein Loop,
'in dem bei jedem Schritt probiert wird, die Applikation zu aktivieren.
'Es wird mit "ZeitLimit" ein allgemeiner Timeout gesetzt. An diesen Timeout nähert sich schrittweise
'der Wert "WarteZeit" an. Entweder das "ZeitLimit" wird erreicht, dann ist die Anwendung nicht einsatzbereit
'und das Script bricht mit einem Hinweis ab. Oder die Anwendung hat sich nach einer bestimmten Zahl von
'Schritten zurückgemeldet und SendKeys kann losgehen.
Function WartenBisAktiv(FensterTitel, ZeitLimit)
WarteZeit = 100
Zeit = ZeitLimit* 100
Do Until WSHShell.AppActivate(FensterTitel) or (Zeit <= 0)
WScript.Sleep WarteZeit
Zeit = Zeit - WarteZeit
Loop
WartenBisAktiv = (Zeit > 0)
End Function