Hallo erstma,
ich komm mal wieder mit einer meiner Fragen:
Ich hab hier ein Script zu übung:
Wenn ich es starten will, kommt diese Meldung:
Anscheinend dürfen Funcs nicht in While Sachen oder Switch Sachen vorkommen.
Jetzt zu meiner Frage:
Ich will, wenn man auf $Button5 drückt, dass es dann GUI löscht (was ja funktioniert) und dann die Funcs mit den Hotkeys ausführt, als ob das GUI da nicht da wäre.
Es sollte dann so Funktionieren wenn der Button gedrückt wurde:
ich komm mal wieder mit einer meiner Fragen:
Ich hab hier ein Script zu übung:
PHP Code:
#include <GUIConstants.au3>
Global $FileTestScript = FileExists(@ScriptDir & "\Testscript.au3")
Global $File2GUI1L2B = FileExists(@ScriptDir & "\2GUI1L2B.au3")
HotKeySet("{F1}","Erstellen")
HotKeySet("{F2}","Loeschen")
HotKeySet("{F3}","LoeschenMitErstellen")
HotKeySet("{F4}","SciTEBeenden")
HotKeySet("{F5}","ScriptEnd")
HotKeySet("{F12}","HotkeyInfo")
$Form1 = GUICreate("Script - Ersteller",190,265,-1,-1)
$Label1 = GUICtrlCreateLabel("Testscript - Ersteller by Tobolobo",5,5,200,25)
$Button1 = GUICtrlCreateButton("GUI Mit 2 Buttons und 1 Label",5,35,180,40)
$Button2 = GUICtrlCreateButton("TestScript erstellen",5,80,180,40)
$Button3 = GUICtrlCreateButton("TestScript löschen",5,125,180,40)
$Button4 = GUICtrlCreateButton("TestScript löschen und neu erstellen",5,170,180,40)
$Button5 = GUICtrlCreateButton("Mit Hotkeys arbeiten",5,215,180,40)
GUISetState(@SW_SHOW)
WinSetOnTop("Script - Ersteller","",1)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
$Tab = Send("{TAB}")
If $File2GUI1L2B = Not @error Then
MsgBox(16,"Fehler","Das Script existiert beteits!")
Else
FileWrite(@ScriptDir & "\2GUI1L2B.au3","#include <GUIConstants.au3>" & @CRLF & @CRLF & "$Form1 = GUICreate(""Titel"",200,200,-1,-1)" & @CRLF & "$Label1 = GUICtrlCreateLabel(""Text"",5,5,200,25)" & @CRLF & "$Button1 = GUICtrlCreateButton(""Text"",5,40,150,60)" & @CRLF & "$Button2 = GUICtrlCreateButton(""Text"",5,110,150,60)" & @CRLF & "GUISetState(@SW_SHOW)" & @CRLF & @CRLF & "While 1" & @CRLF & "$nMsg = GUIGetMsg()" & @CRLF & "Switch $nMsg" & @CRLF & "Case $GUI_EVENT_CLOSE" & @CRLF & "Exit" & @CRLF & "EndSwitch" & @CRLF & "WEnd")
EndIf
Case $Button2
If $FileTestScript = Not @error Then
MsgBox(16,"Fehler","Das Script existiert Bereits!")
Else
FileWrite(@ScriptDir & "\Testscript.au3","")
EndIf
Case $Button3
If $FileTestScript = @error Then
MsgBox(16,"Fehler","Das Script kann nicht gelöscht werden, da es bereits existiert!")
Else
FileDelete(@ScriptDir & "\Testscript.au3")
EndIf
Case $Button4
If $FileTestScript = @error Then
MsgBox(16,"Fehler","Das Script existiert nicht einmal!")
Else
FileDelete(@ScriptDir & "\Testscript.au3")
FileWrite(@ScriptDir & "\Testscript.au3","")
EndIf
Case $Button5
GUIDelete()
MsgBox(64,"Info","'F1' erstellt ein Script," & @CRLF & "'F2' löscht das Script," & @CRLF & "'F3' löscht das Alte und erstellt das neues Script." & @CRLF & "'F4' beendet SciTE" & @CRLF & "'F5' beendet dieses Script" & @CRLF & "'F12' zeigt dieses Fenster nocheinmal." & @CRLF & "SciTE muss vor dem drücken eines HotKeys geschlossen werden.")
While 1
Func Erstellen()
If $FileTestScript = Not @error Then
MsgBox(16,"Fehler","Das Script existiert Bereits!")
Else
FileWrite(@ScriptDir & "\Testscript.au3","")
EndIf
EndFunc
Func Loeschen()
If $FileTestScript = @error Then
MsgBox(16,"Fehler","Das Script kann nicht gelöscht werden, da es bereits existiert!")
Else
FileDelete(@ScriptDir & "\Testscript.au3")
EndIf
EndFunc
Func LoeschenMitErstellen()
If $FileTestScript = @error Then
MsgBox(16,"Fehler","Das Script existiert nicht einmal!")
Else
FileDelete(@ScriptDir & "\Testscript.au3")
FileWrite(@ScriptDir & "\Testscript.au3","")
EndIf
EndFunc
Func SciTEBeenden()
$SciTETest = ProcessExists("SciTE.exe")
If $SciTETest = @error Then
MsgBox(16,"Fehler","Der Prozess SciTE.exe existiert nicht!")
Else
ProcessClose("SciTE.exe")
EndIf
EndFunc
Func ScriptEnd()
Exit
EndFunc
Func HotkeyInfo()
MsgBox(64,"Info","'F1' erstellt ein Script," & @CRLF & "'F2' löscht das Script," & @CRLF & "'F3' löscht das Alte und erstellt das neues Script." & @CRLF & "'F4' beendet SciTE" & @CRLF & "'F5' beendet dieses Script" & @CRLF & "'F12' zeigt dieses Fenster nocheinmal." & @CRLF & "SciTE muss vor dem drücken eines HotKeys geschlossen werden.")
EndFunc
WEnd
EndSwitch
WEnd
PHP Code:
F:\AutoIt\TestScriptErsteller.au3(60,1) : ERROR: missing Wend.
Func
^
F:\AutoIt\TestScriptErsteller.au3(57,4) : REF: missing Wend.
While
^
F:\AutoIt\TestScriptErsteller.au3(60,1) : ERROR: missing EndSwitch.
Func
^
F:\AutoIt\TestScriptErsteller.au3(25,14) : REF: missing EndSwitch.
Switch $nMsg
~~~~~~~~~~~~^
F:\AutoIt\TestScriptErsteller.au3(60,1) : ERROR: missing Wend.
Func
^
F:\AutoIt\TestScriptErsteller.au3(23,1) : REF: missing Wend.
While
^
F:\AutoIt\TestScriptErsteller.au3(103,3) : ERROR: syntax error
WEnd
^
F:\AutoIt\TestScriptErsteller.au3 - 4 error(s), 0 warning(s)
Jetzt zu meiner Frage:
Ich will, wenn man auf $Button5 drückt, dass es dann GUI löscht (was ja funktioniert) und dann die Funcs mit den Hotkeys ausführt, als ob das GUI da nicht da wäre.
Es sollte dann so Funktionieren wenn der Button gedrückt wurde:
PHP Code:
HotKeySet("{F1}","Erstellen")
HotKeySet("{F2}","Loeschen")
HotKeySet("{F3}","LoeschenMitErstellen")
HotKeySet("{F4}","SciTEBeenden")
HotKeySet("{F5}","ScriptEnd")
HotKeySet("{F12}","HotkeyInfo")
Func Erstellen()
If $FileTestScript = Not @error Then
MsgBox(16,"Fehler","Das Script existiert Bereits!")
Else
FileWrite(@ScriptDir & "\Testscript.au3","")
EndIf
EndFunc
Func Loeschen()
If $FileTestScript = @error Then
MsgBox(16,"Fehler","Das Script kann nicht gelöscht werden, da es bereits existiert!")
Else
FileDelete(@ScriptDir & "\Testscript.au3")
EndIf
EndFunc
Func LoeschenMitErstellen()
If $FileTestScript = @error Then
MsgBox(16,"Fehler","Das Script existiert nicht einmal!")
Else
FileDelete(@ScriptDir & "\Testscript.au3")
FileWrite(@ScriptDir & "\Testscript.au3","")
EndIf
EndFunc
Func SciTEBeenden()
$SciTETest = ProcessExists("SciTE.exe")
If $SciTETest = @error Then
MsgBox(16,"Fehler","Der Prozess SciTE.exe existiert nicht!")
Else
ProcessClose("SciTE.exe")
EndIf
EndFunc
Func ScriptEnd()
Exit
EndFunc
Func HotkeyInfo()
MsgBox(64,"Info","'F1' erstellt ein Script," & @CRLF & "'F2' löscht das Script," & @CRLF & "'F3' löscht das Alte und erstellt das neues Script." & @CRLF & "'F4' beendet SciTE" & @CRLF & "'F5' beendet dieses Script" & @CRLF & "'F12' zeigt dieses Fenster nocheinmal." & @CRLF & "SciTE muss vor dem drücken eines HotKeys geschlossen werden.")
EndFunc