Ich fange gerade an, mich mit GUIs zu befassen und habe testweise ein einfaches Script gebastelt, um den internen PC-Laustprecher aus- und einzuschalten.
Bevor die Frage aufkommt, wieso ausgerechnet das und übr die Registry: ich muss später Registrywerte über ein GUI ändern können, was ich hiermit nun einfach mal versuche.
Leider wird beim Klick auf eine der beiden Schaltflächen die eine Funktion nicht ausgeführt, während die andere fehlerfrei ihre Arbeit verrichtet, und ich komme leider nicht dahinter, wieso das so ist.
Vielleicht kann mir jemand von Euch 'nen Tip geben.
Das Script wir folgt:
Local $UserName = "sa_testuser"
Local $Password = "password"
Local $ScriptOn = RegWrite("HKEY_CURRENT_USER\Control Panel\Sound","Beep","REG_SZ","yes")
Local $ScriptOff= RegWrite("HKEY_CURRENT_USER\Control Panel\Sound","Beep","REG_SZ","no")
Local $workingdir = "\\myserver\Public"
$beepcheck = RegRead("HKEY_CURRENT_USER\Control Panel\Sound\", "Beep")
[/autoit][autoit][/autoit][autoit]GUICreate("PC-Lautsprecher umschalten", 350, 100)
GuiCtrlCreatePic("Speaker.Gif",0,0, 32,33)
GUICtrlCreateLabel("Was möchten Sie mit dem internen PC-Lautsprecher tun ?", 10, 35)
$aktivieren = GUICtrlCreateButton("Einschalten", 10, 60, 80)
$deaktivieren = GUICtrlCreateButton("Ausschalten", 110, 60, 80)
GUISetState(@SW_SHOW)
While 2
$msg = GUIGetMsg()
Select
Case $msg = $aktivieren
RunAs($UserName, "mydomain",$Password, 0, $ScriptOn, $workingdir)
If $beepcheck = "yes" Then
MsgBox(0,"Lautsprecheraktivierung erfolgreich","Der interne Lautsprecher wurde nun eingeschaltet.")
Else
MsgBox(0,"Fehler ! Der Lautsprecher ist immer noch aus.","Das Einschalten des Lautsprechers war nicht erfolgreich. Bitte wenden Sie sich an den Support.")
EndIf
ExitLoop
Case $msg = $deaktivieren
RunAs($UserName, "mydomain",$Password, 0, $ScriptOff, $workingdir)
If $beepcheck = "no" Then
MsgBox(0,"Lautsprecherdeaktivierung erfolgreich","Der interne Lautsprecher wurde nun abgeschaltet.")
Else
MsgBox(0,"Fehler ! Der Lautsprecher ist immer noch an.","Das Abschalten des Lautsprechers war nicht erfolgreich. Bitte wenden Sie sich an den Support.")
EndIf
ExitLoop
EndSelect
WEnd
Exit
[/autoit]Klickt man nun auf "Einschalten", erhält man nur die Meldung, dass der Lautsprecher immer noch aus ist und die Umstellung nicht erfolgreich war, während der Klick auf "Abschalten" erfolgreich ist.
Wieso ?