Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 09:31

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

 

1GUI Question 1Knopf Question

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Aug 2010
Posts: 46
Received Thanks: 0
1GUI Question 1Knopf Question

Wenn man auf den Button klickt sollte doch eigentl. die msg box kommen?:
PHP Code:
#include <GUIConstants.au3>
$Button2 GUICtrlCreateButton("About"840091250)
Switch 
$Button2
Case MsgBox(0,"About","hier steht iwas")
    EndSwitch 
oder?Bei mir kommt aber keine Box
Welcher AutoIt SendKnopf muss man eingeben wen send Druck S-Abf drücken soll?Bei der AutoIt Hilfe steht es nicht



urasic is offline  
Old   #2
 
elite*gold: 1226
Join Date: Apr 2010
Posts: 997
Received Thanks: 585
Also die erste Frage ist leicht zu beantworten. Setz das ein:
PHP Code:
(...)
$Button2 GUICtrlCreateButton("About"840091250
While 
1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $Button2
            MsgBox
(0,"About","hier steht iwas"
        (...
gui_event_closeetc.)
    EndSwitch
WEnd 
Du hast du noch keine Form deklariert. Keine Ahnung, aber ich denke, dass man ne Form deklarieren muss, ehe man ein Button draufsetzt. Zudem hattest du keine While-Schleife, weshalbt sich der Code sofort beenden würde (ruft nur einmal GuiGetMsg() ab --> geht zu schnell, um was zu drücken), sobald man ihn startet.

Also für deine zweite Frage kann ich dir Seite mal geben. Hab noch nicht raufgeschaut, aber da scheint ne nützliche Tabelle drin zu sein.


Jeoni is offline  
Thanks
1 User
Old   #3
 
elite*gold: 280
Join Date: May 2007
Posts: 2,817
Received Thanks: 3,479
du solltest wissen, das switch auch nur eine abfrage ist, welche sehr gut vergleichbar mit einer if abfrage ist.

für
Code:
if $a=1 then
    $b=2
elseif $a=2 then
    $b=3
endif
könnte man auch schreiben:
Code:
switch $a
    case 1
        $b=2
    case 2
        $b=3
endswitch
das heist, du hast nach dem switch den parameter auf den geschaut werden soll.
in deinem gui ist das die msg die ans gui geht.
diese wird mit GuiGetMsg() empfangen.

wenn dein button angesprochen wird ist GuiGetMsg() = $button.
somit ergibt sich
Code:
If GuiGetMsg() = $Button2 then
        MsgBox(0,"About","hier steht iwas")
EndIf
oder mit switch:
Code:
Switch GuiGetMsg()
    Case $Button2
        MsgBox(0,"About","hier steht iwas")
EndSwitch
lolkop is offline  
Thanks
1 User
Old   #4
 
elite*gold: 0
Join Date: Aug 2010
Posts: 46
Received Thanks: 0
Danke aber iwie geht das auch nicht Beide Varianten If und Switch


urasic is offline  
Old   #5
 
elite*gold: 0
Join Date: Aug 2010
Posts: 46
Received Thanks: 0
welche muss ich den includen?
ich hab nur:
PHP Code:
#include <GUIConstants.au3> 
brauch ich vllt. noch
PHP Code:
<ButtonConstants.au3
urasic is offline  
Old   #6
 
elite*gold: 280
Join Date: May 2007
Posts: 2,817
Received Thanks: 3,479
eigentlich brauchst du keine includes.

dein gui könnte zb so aussehen:
Code:
GUICreate('blah', 120, 60, -1, -1, 0x10C80000)
$btn = GUICtrlCreateButton('Button', 10, 10, 105, 40)

While 1
	Switch GUIGetMsg()
		Case -3
			Exit
		Case $btn
			MsgBox(0,'info','der button wurde gedrückt')
	EndSwitch
WEnd
den style-parameter vom gui habe ich mal mit
0x00C00000 ($WS_CAPTION), 0x10000000 ($WS_VISIBLE) und 0x00080000 ($WS_SYSMENU) belegt, so dass sich 0x10C80000 (0x00C00000 + 0x10000000 + 0x00080000) ergeben hat.
lolkop is offline  
Thanks
1 User
Old   #7
 
elite*gold: 0
Join Date: Aug 2010
Posts: 46
Received Thanks: 0
trotzdem kommt keine msg bei mir mein bisheriger source:
PHP Code:
#include <GUIConstants.au3>
HotKeySet("F1","End")
#Region ### START Koda GUI section ### Form=
$Form1 GUICreate("iwas"633447193125)
$Button1 GUICtrlCreateButton("button"232320139330)
$Label1 GUICtrlCreateLabel("iwas"163219697)
$Button2 GUICtrlCreateButton("About"840091250)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit
        EndSwitch
WEnd
Switch GUIGetMsg ()
Case 
$Button2
    MsgBox
(0,"About","iwas")
    EndSwitch
Func End ()
Exit
EndFunc 
urasic is offline  
Old   #8
 
elite*gold: 280
Join Date: May 2007
Posts: 2,817
Received Thanks: 3,479
Quote:
Originally Posted by urasic View Post
trotzdem kommt keine msg bei mir mein bisheriger source:
PHP Code:
#include <GUIConstants.au3>
HotKeySet("F1","End")
#Region ### START Koda GUI section ### Form=
$Form1 GUICreate("iwas"633447193125)
$Button1 GUICtrlCreateButton("button"232320139330)
$Label1 GUICtrlCreateLabel("iwas"163219697)
$Button2 GUICtrlCreateButton("About"840091250)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit
        EndSwitch
WEnd
Switch GUIGetMsg ()
Case 
$Button2
    MsgBox
(0,"About","iwas")
    EndSwitch
Func End ()
Exit
EndFunc 
du solltest mit einer richtigen code formatierung arbeiten. dann wirst du auch selbst deinen fehler sehen.
dein aktueller code sieht so aus:
Code:
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd

Switch GUIGetMsg()
    Case $Button2
        MsgBox(0,"About","iwas")
EndSwitch

Func End()
    Exit
EndFunc
mit while 1 setzt du eine schleife die niemals enden kann. jeder code der unter dieser while schleife steht kann nie erreicht werden (es sei denn es handelt sich um funktionen die man callen kann).

du hast in der while schleife doch bereits eine switch abfrage für GuiGetMsg() enthalten.
da $GUI_EVENT_CLOSE = -3 kannst du auch direkt
Code:
While 1
    Switch GUIGetMsg()
        Case -3
            Exit
        Case $Button2
            MsgBox(0,"About","iwas")
    EndSwitch
WEnd
schreiben.

ich hoffe mal du versuchst zu verstehen was hier geschrieben wird. wenn du immer nur copy paste nutzt, ohne über die hintergründe nachzudenken, wirst du nie selbst ein script zum laufen bekommen.
lolkop is offline  
Thanks
1 User
Old   #9
 
elite*gold: 52
The Black Market: 101/0/0
Join Date: Oct 2010
Posts: 1,998
Received Thanks: 389
Hier ist nochmal alles zusammengefasst

PHP Code:
#include <GUIConstants.au3>
HotKeySet("F1","End")
#Region ### START Koda GUI section ### Form=
$Form1 GUICreate("iwas"633447193125)
$Button1 GUICtrlCreateButton("button"232320139330)
$Label1 GUICtrlCreateLabel("iwas"163219697)
$Button2 GUICtrlCreateButton("About"840091250)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit
        Case 
$Button2
    MsgBox
(0,"About","iwas")
        EndSwitch
WEnd

Func End 
()
Exit
EndFunc 
BlackHybrid is offline  
Old   #10
 
elite*gold: 0
Join Date: Aug 2010
Posts: 46
Received Thanks: 0
danke ich kann eigentl. nur die grundlagen+weiterführendes TuT von shadow
mit GUI hab ich mich nicht befasst.
urasic is offline  
Old   #11
 
elite*gold: 280
Join Date: May 2007
Posts: 2,817
Received Thanks: 3,479
schleifen haben nichts mit einem gui zu tun.

Code:
While 1
    Sleep(1000)
WEnd

MsgBox(0, 'Info', 'Hallo, ich bin eine MsgBox')
wenn du nicht verstehst, warum dieser code niemals eine MsgBox ausgibt, hast das du das grundprinziep vom scripten nicht verstanden.

In einem script wird alles nacheinander in genau der reihenfolge ausgeführt, in der es geschrieben steht. While 1 steht zb eigentlich für While True. und wenn man True, ohne jegliche verbindung zu einer Variable nutzt, wird es aufs script bezogen.

While 1 bedeutet also solange das Script läuft. dh, alles zwischen While 1 und WEnd wird solange ausgeführt, bis ein Exit bzw. ExitLoop befehl erreicht wird.

auf den code oben bezogen würde das heissen, der computer macht genau das hier:
Code:
Sleep(1000)
Sleep(1000)
Sleep(1000)
Sleep(1000)
Sleep(1000)
...
was auch immer unter der while schleife steht kann nie erreicht werden, da kein ExitLoop befehl in der schleife existiert.
lolkop is offline  
Thanks
1 User
Old   #12
 
elite*gold: 0
Join Date: Aug 2010
Posts: 46
Received Thanks: 0
bei mir kommt gar nix wenn ich es starte:
PHP Code:
HotKeySet("F1","iwas")
GUICreate("Screen dozZer!",633,447,193,125)
$button1=GUICtrlCreateButton("iwas",232,240,139,33,0)
$button2=GUICtrlCreateButton("About",24,400,91,25,0)

While 
1
Switch GUIGetMsg ()
Case -
3
Case $Button2
MsgBox
(0,"About","iwas")
Case 
$Button1
    
;ein befehl
EndSwitch
WEnd
Func iwas 
()
    Exit
EndFunc
While 1
Sleep
(1000)
WEnd 
urasic is offline  
Old   #13
 
elite*gold: 52
The Black Market: 101/0/0
Join Date: Oct 2010
Posts: 1,998
Received Thanks: 389
Probiere es mal hiermit:

PHP Code:
HotKeySet("F1","iwas")
GUICreate("Screen dozZer!",633,447,193,125)
$button1=GUICtrlCreateButton("iwas",232,240,139,33,0)
$button2=GUICtrlCreateButton("About",24,400,91,25,0)
guisetstate(@SW_SHOW)
While 
1
Switch GUIGetMsg ()
    Case -
3
        
exit
Case 
$Button2
MsgBox
(0,"About","iwas")
Case 
$Button1
    iwas
()
EndSwitch
WEnd
Func iwas 
()
    Exit
EndFunc 
BlackHybrid is offline  
Thanks
1 User
Old   #14
 
elite*gold: 280
Join Date: May 2007
Posts: 2,817
Received Thanks: 3,479
Quote:
Originally Posted by urasic View Post
bei mir kommt gar nix wenn ich es starte:
PHP Code:
HotKeySet("F1","iwas")
GUICreate("Screen dozZer!",633,447,193,125)
$button1=GUICtrlCreateButton("iwas",232,240,139,33,0)
$button2=GUICtrlCreateButton("About",24,400,91,25,0)

While 
1
Switch GUIGetMsg ()
Case -
3
Case $Button2
MsgBox
(0,"About","iwas")
Case 
$Button1
    
;ein befehl
EndSwitch
WEnd
Func iwas 
()
    Exit
EndFunc
While 1
Sleep
(1000)
WEnd 
erstmal ist die while schleife da am ende mal wieder nicht erreichbar, und zweitens hast du dein gui nicht sichtbar gemacht. entweder du tust das so wie bereits von BlackHybrid gepostet, über GuiSetState, oder du legst es gleich beim erstellen des guis fest. guck dir nochmal das beispiel gui von mir vorhin an. da hatte ich erklärt wie man die style parameter in verbindung nutzt. $WS_VISIBLE sorgt in diesem falle dafür, dass das fenster gleich sichtbar erstellt wird (macht ja nicht viel sinn, extra ein unsichtbares fenster zu erstellen, was dann gleich nach der erstellung wieder sichtbar gemacht wird)
lolkop is offline  
Old   #15
 
elite*gold: 52
The Black Market: 101/0/0
Join Date: Oct 2010
Posts: 1,998
Received Thanks: 389
Ich finde es mit GUISetState(@SW_Show) besser da man mit $WS_VISIBLE
#include <WindowsConstants.au3> includieren muss.
Ich kann mir zwar nicht vorstellen dass man später ohne einen Fenster-Stil eine GUI macht aber für den anfang reicht @SW_Show allemal


BlackHybrid is offline  
Reply



« Previous Thread | Next Thread »

Similar Threads
[QUESTION]How do i bypass Xtrap for any private server?[QUESTION]
Exactly what the title says. I keep on getting an xTrap error when i try and load ANY private server that uses XTrap and it's driving me...
3 Replies - Cabal Main - Discussions / Questions
[QUESTION]How do i bypass Xtrap for any private server?[QUESTION]
Exactly what the title says. I keep on getting an xTrap error when i try and load ANY private server that uses XTrap and it's driving me...
2 Replies - Cabal PServer - Discussions / Questions



All times are GMT +1. The time now is 09:31.


Powered by vBulletin®
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Abuse
Copyright ©2017 elitepvpers All Rights Reserved.