$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
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:
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
$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.") EndSwitch
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
du kannst nicht funktionen in einer schleife definieren.
damit würde die funktion ja immer wieder neu definiert werden.
funktionsdefinitionen immer ausserhalb von schleifen tätigen.
im falle von $button5 gedrückt, wird das gui zwar gelöscht, hierbei bleibt aber die endlosschleife selbstverständlich noch erhalten.
dh du brauchst keine extra schleife. könntest aber auf effizienzgründen noch eine art schlater einbauen, damit dein script erkennt, ob das gui vorhanden ist oder nicht. ist das gui nicht vorhanden, so braucht auch keine GuiGetMsg abfrage mehr statt zu finden =)
Dim $guiExists = True
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")
GUICreate("Script - Ersteller",190,265,-1,-1)
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 Sleep(10)
If $guiExists Then
Switch GUIGetMsg()
Case -3
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
$guiExists = False
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.")
EndSwitch
EndIf
WEnd
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
aber mal von dem schleifen-funktions problem, gibt fileexists jeweils 1 (true) oder 0 (false) zurück. es macht nicht wirklich sinn den rückgabewert mit @error zu vergleichen.
[Fragen zu] Gui Hide & Show / Admin Rights / Func in Func 12/12/2010 - AutoIt - 29 Replies Hi Leute,
wie ihr oben ja bereits lesen könnt habe ich ein paar Fragen.
1. Könnte mir jmd. eine Hotkeyset-Func schreiben, womit ich mit nur einer (!) Taste die GUI verstecken und wieder anzeigen lassen kann ?
2. Gibt es etwas, dass dem gescripteten Tool von selbst Adminrechte verschafft? Ich rede NICHT von RequireAdmin, da muss man ja Administrator des PCs sein.
€:
Kann "#requireadmin" rausgezögert werden ?!
Ich möchte, dass das passiert, aber erst, wenn ich einen Knopf gedrückt...
AutoIt Script in Button einbauen? 06/09/2010 - AutoIt - 5 Replies Hey,
nach langer Zeit wollt ich wieder mit AutoIt hantieren hab aber leider keine Ahnung mehr wie ich z.B. nen RunScript in nen Button einbaue.
bitte um Hilfe! >_<
Froce
Hotkey Button zuweisen? 02/25/2010 - AutoIt - 18 Replies Hallo,
erster post in dieser section.
In letzter zeit hab ich mich mit dem Thema AutoIT befasst, hab auch schon paar programme erstellt, aber jetzt habe ich ein Problem!
Wie kann ich z.B Hotkey: F8 einem Button, von Koda-Designer, zuweisen?
Also dass wenn ich inGame bin nur F8 drücken muss das der Button gedrückt wird!!
Mfg!!!
Button mit hotkey verbinden? 01/09/2010 - AutoIt - 10 Replies hallo
ich habe mir per autoit nen trainer fürn spiel gemacht..keine große sache..aber ich will per tastendruck INGAME das der im trainer einen button drückt....
hier mal der sourcecode:
#include <GUIConstants.au3>
#include <NomadMemory.au3>
Button mit Func belegen 04/07/2009 - General Coding - 2 Replies Hi Leute
Ich habe hier ein Gui fenster mit koda gemacht und weiß aber nicht wie ich den Button mit einer Fuction belege kann mit das mal jmd sagen pls.
Hier der skript:
; Script Start - Add your code below here
#include <GUIConstants.au3>
#Region ### START Koda GUI section ### Form=