Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 15:13

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Frage]Bei Button Func mit Hotkey einbauen

Discussion on [Frage]Bei Button Func mit Hotkey einbauen within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jun 2009
Posts: 121
Received Thanks: 13
[Frage]Bei Button Func mit Hotkey einbauen

Hallo erstma,
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 
Wenn ich es starten will, kommt diese Meldung:
PHP Code:
F:\AutoIt\TestScriptErsteller.au3(60,1) : ERRORmissing Wend.
Func
^
F:\AutoIt\TestScriptErsteller.au3(57,4) : REFmissing Wend.
            While
            ^
F:\AutoIt\TestScriptErsteller.au3(60,1) : ERRORmissing EndSwitch.
Func
^
F:\AutoIt\TestScriptErsteller.au3(25,14) : REFmissing EndSwitch.
    Switch 
$nMsg
    
~~~~~~~~~~~~^
F:\AutoIt\TestScriptErsteller.au3(60,1) : ERRORmissing Wend.
Func
^
F:\AutoIt\TestScriptErsteller.au3(23,1) : REFmissing Wend.
While
^
F:\AutoIt\TestScriptErsteller.au3(103,3) : ERRORsyntax error
        WEnd
        
^
F:\AutoIt\TestScriptErsteller.au3 4 error(s), 0 warning(s
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:
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 
Tobolobo is offline  
Old 07/01/2011, 15:58   #2
 
BlackHybrid's Avatar
 
elite*gold: 52
The Black Market: 101/0/0
Join Date: Oct 2010
Posts: 1,998
Received Thanks: 389
Mach einfach die While, die die Funcs umschließt weg und setze das EndSwitch und WEnd nach pben zum letzten Case.
BlackHybrid is offline  
Old 07/01/2011, 16:46   #3
 
elite*gold: 0
Join Date: Jun 2009
Posts: 121
Received Thanks: 13
mom ich machs

€: Code sieht jetz so aus geht aber immer noch nich
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.")
    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

WEnd 
Die fehlermeldung:
PHP Code:
F:\TestScriptErsteller.au3(59,1) : ERRORmissing Wend.
Func
^
F:\TestScriptErsteller.au3(23,1) : REFmissing Wend.
While
^
F:\TestScriptErsteller.au3(101,1) : ERRORsyntax error
WEnd
^
F:\TestScriptErsteller.au3 2 error(s), 0 warning(s
Geht da vielleicht irgendwas mit exitloop?
Tobolobo is offline  
Old 07/01/2011, 17:14   #4
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
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 =)
lolkop is offline  
Old 07/01/2011, 17:25   #5
 
elite*gold: 0
Join Date: Jun 2009
Posts: 121
Received Thanks: 13
Ich hätt gern ma sowas in code wenns geht...
Tobolobo is offline  
Old 07/01/2011, 18:10   #6
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
ich persöhnlich bin immer dafür das leute selbst versuchen ein problem zu lösen, als dies von anderen erledigen zu lassen...

aber wenn du lieber nicht selbst versuchen willst umzusetzen, was bisher schon 2 erklärt haben, hier der code mit behobenem (haupt)fehler:

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.
lolkop is offline  
Thanks
1 User
Old 07/01/2011, 18:22   #7
 
elite*gold: 0
Join Date: Jun 2009
Posts: 121
Received Thanks: 13
Ich lern an beispielen

des mit @error geht aber deswegen mach ichs ^^

kann closed werden
Tobolobo is offline  
Reply


Similar Threads Similar Threads
[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=



All times are GMT +1. The time now is 15:14.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.