Register for your free account! | Forgot your password?

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

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

Advertisement



$GUI_ENABLE / $GUI_DISABLE

Discussion on $GUI_ENABLE / $GUI_DISABLE within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1



 
Asuramaru's Avatar
 
elite*gold: 20
The Black Market: 110/0/0
Join Date: Nov 2009
Posts: 2,256
Received Thanks: 1,570
$GUI_ENABLE / $GUI_DISABLE

ich hab ein kleines problemchen

ich wollte einen bot bauen doch leider gibt es ein kleines problemchen
anfangs sind die Inputboxen nicht zu benutzen erst wenn die checkbox = 1 ist.

so nun mein problem^^
- die Inputbox flakert ~> immer Enable und danach Disable
kann man das flakern umgehen?

wenn die Inputbox = 0 ist soll die Inputbox wieder unbenutzbar sein
problem:
flakern ist weg aber inputbox ist immernoch benutzbar

(kleines problem nebenbei o.o why kann man ner While schleife keinen name zum aufrufen geben? wie lol()? ich bin der meinung das ging mal o.ö)



edit:
wie kann man den text in ner Label ändern?^^
wollte das später oben wo jetzt Label3 und Label4 die momentane HP/MP steht^^
mit _Memoryread lese ich den wert aus und gebe ihn dann in der label wieder

problem:
nur am start des scripts (wert ist dann immer 0 <.<)
wird memoryread später genutzt bleibt das Label leer
Asuramaru is offline  
Old 08/22/2010, 02:37   #2
 
| Moep |'s Avatar
 
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438
Quote:
Originally Posted by DarkGER! View Post
- die Inputbox flakert ~>
Dass kommt, weil du den state des inputs bei jedem durchgang neu setzt. Sorge dafür dass dies nur gescheht wenn die checkbox dass erste mal gecheckt wurde. Außerdem returned "GUICtrlGetState($checkbox)" keine 1 , bzw. 0.

Quote:
Originally Posted by DarkGER! View Post
(kleines problem nebenbei o.o why kann man ner While schleife keinen name zum aufrufen geben? wie lol()? ich bin der meinung das ging mal o.ö)
Häh? Meinst du ne Func? Dann musst du das vorher auch als Func deklarieren.


Quote:
Originally Posted by DarkGER! View Post
wie kann man den text in ner Label ändern?^^
GUICtrlSetData()


Quote:
Originally Posted by DarkGER! View Post
wollte das später oben wo jetzt Label3 und Label4 die momentane HP/MP steht^^
mit _Memoryread lese ich den wert aus und gebe ihn dann in der label wieder

problem:
nur am start des scripts (wert ist dann immer 0 <.<)
wird memoryread später genutzt bleibt das Label leer
Dein Script macht nur das was du ihm bebringst. Wenn du es nur einmal oben den Wert auslesen lässt und dann in einer endlosschleife verschwindest, dann ist das klar...
| Moep | is offline  
Thanks
1 User
Old 08/22/2010, 11:11   #3



 
Asuramaru's Avatar
 
elite*gold: 20
The Black Market: 110/0/0
Join Date: Nov 2009
Posts: 2,256
Received Thanks: 1,570
Quote:
Originally Posted by | Moep | View Post
Dass kommt, weil du den state des inputs bei jedem durchgang neu setzt. Sorge dafür dass dies nur gescheht wenn die checkbox dass erste mal gecheckt wurde. Außerdem returned "GUICtrlGetState($checkbox)" keine 1 , bzw. 0
ich weiß nicht ganz wie ich das machen soll o.o
tu ich es in ne While schleife flakert es ja.
heng ich unten ans GUI folgendes ran:
Code:
Do
Until GUICTRLREAD($Checkbox[1]) = 1
GUICtrlSetState($Input[1], $GUI_ENABLE)
dann sind alle Inputboxen sichtbar bis man die Checkbox benutzt
und weil die Funktion nur 1x aufgerufen wird passiert danach garnichtsmehr

wenn man es in eine Func tut muss diese ja erst aufgerufen werden.
Asuramaru is offline  
Old 08/22/2010, 13:13   #4
 
Imaginär's Avatar
 
elite*gold: 255
Join Date: Nov 2009
Posts: 2,900
Received Thanks: 1,408
Quote:
Originally Posted by DarkGER! View Post
ich hab ein kleines problemchen

ich wollte einen bot bauen doch leider gibt es ein kleines problemchen
anfangs sind die Inputboxen nicht zu benutzen erst wenn die checkbox = 1 ist.

so nun mein problem^^
- die Inputbox flakert ~> immer Enable und danach Disable
kann man das flakern umgehen?

wenn die Inputbox = 0 ist soll die Inputbox wieder unbenutzbar sein
problem:
flakern ist weg aber inputbox ist immernoch benutzbar

(kleines problem nebenbei o.o why kann man ner While schleife keinen name zum aufrufen geben? wie lol()? ich bin der meinung das ging mal o.ö)



edit:
wie kann man den text in ner Label ändern?^^
wollte das später oben wo jetzt Label3 und Label4 die momentane HP/MP steht^^
mit _Memoryread lese ich den wert aus und gebe ihn dann in der label wieder

problem:
nur am start des scripts (wert ist dann immer 0 <.<)
wird memoryread später genutzt bleibt das Label leer
Aufhebung des Flackerns[per Schalter]:


Wenn eine Checkbox disabled ist, hat sie nicht den Wert 0, sondern 4
Imaginär is offline  
Thanks
1 User
Old 08/22/2010, 17:49   #5



 
Asuramaru's Avatar
 
elite*gold: 20
The Black Market: 110/0/0
Join Date: Nov 2009
Posts: 2,256
Received Thanks: 1,570
nochein kleines problem



die Funktion wird nur 1x aufgerufen
wenn ich oben bei

If $Active = 1 then
Start()

While und Wend einfüge hab ich keine chance mehr den Stop button zu benutzen
und wenn ich unter

Case $Button2
Pause()

Wend schreibe krieg ich nen haufen errors von wegen missing Endswitch etc.

dann hab ich versucht unten bei den Func's ein Do .... Until Active = 0 einzufügen
dann hat sich aber garnichtsmehr getan <.<

was mach ich falsch?
und sollte ich es lieber anders machen als mit den ganzen Func's?^^ (wegen den Sleep's ist es etwas doof )
Asuramaru is offline  
Old 08/22/2010, 18:29   #6
 
PenGuin :O's Avatar
 
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
Gewöhn dir doch bitte an statt mit GuiCtrlRead die Checkbox abzufragen, lieber :
Code:
If BitAnd(GUICtrlGetState($CheckBox), 4) Then
;...
EndIf
sicherer.
PenGuin :O is offline  
Old 08/22/2010, 21:40   #7
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Quote:
Originally Posted by pinguin94 View Post
Gewöhn dir doch bitte an statt mit GuiCtrlRead die Checkbox abzufragen, lieber :
Code:
If BitAnd(GUICtrlGetState($CheckBox), 4) Then
;...
EndIf
sicherer.
GUICtrlGetState würde dir nie 0, 1, oder 4 zurück geben.
Folgende Möglichkeiten funktionieren:
PHP Code:
If BitAnd(GUICtrlRead($CheckBox), $GUI_CHECKEDThen
;...
EndIf 
PHP Code:
If BitAnd(GUICtrlRead($CheckBox), $GUI_CHECKED) = True Then
;...
EndIf 
PHP Code:
If BitAnd(GUICtrlRead($CheckBox), $GUI_CHECKED) == $GUI_CHECKED Then
;...
EndIf 
KDeluxe is offline  
Old 08/22/2010, 22:18   #8
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
sobald du mit guis arbeitest solltest du auf sleeps komplett verzichten. allgemein ist es in autoit viel sinnvoller auf die timerfunktionen zurückzugreifen, da ein sleep das gesamte script blockiert (selbes gilt für das processwait was du beim start button mit eingefügt hast).

desweiteren würde ich die ganzen check abfragen vom gui mit in die switch schleife einbauen. dafür gibt es ja den Else case.

zuletzt bleibt noch zu sagen, das ich nicht ganz verstehe warum du dir das ganze so umständlich machst. anstatt 2 buttons zu verwenden für start und stop könntest du auch einen nutzen, der wenn das tool läuft stop zeigt und sonst start. so könntest du auf die $active variable verzichten, da du per guictrlread vom button ja direkt ablesen kannst ob das tool läuft oder nicht.

selbes gilt für die check variablen, welche hier eigentlich überhaupt nicht gebraucht werden.
lolkop is offline  
Old 08/23/2010, 15:55   #9
 
PenGuin :O's Avatar
 
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
Quote:
Originally Posted by KillerDeluxe View Post
GUICtrlGetState würde dir nie 0, 1, oder 4 zurück geben.
Doch.
PenGuin :O is offline  
Old 08/23/2010, 16:49   #10



 
Asuramaru's Avatar
 
elite*gold: 20
The Black Market: 110/0/0
Join Date: Nov 2009
Posts: 2,256
Received Thanks: 1,570
wenn ich mir die Hilfe datei ansehe macht es doch garkein unterschied ob man sleep nutzt oder timer

Code:
$begin = TimerInit()
sleep(3000)
$dif = TimerDiff($begin)
MsgBox(0,"Time Difference",$dif)
da ist doch auch sleep drin
Asuramaru is offline  
Old 08/23/2010, 17:29   #11
 
omer36's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
wenn du sleep machst, wird der ganze script pausiert..
hier mal ein kleines bsp. was hier vor einiger zeit mal gepostet wurde...

vllt hilft es ja

PHP Code:
Func _Start()
    
Local $e$a$w, $2$q
    $e 
TimerInit()
    
$a TimerInit()
    
$w TimerInit()
    $
TimerInit()
    
$q TimerInit()

    While 
1
        
If TimerDiff($e) >= 5000 Then
            Send
('e')
            
$e TimerInit()
        EndIf
        If 
TimerDiff($a) >= 1000 Then
            Send
('a')
            
$a TimerInit()
        EndIf
        If 
TimerDiff($w) >= 1000 Then
            Send
('w')
            
$w TimerInit()
        EndIf
        If 
TimerDiff($2) >= 3000 Then
            Send
('2')
            $
TimerInit()
        EndIf
        If 
TimerDiff($q) >= 4000 Then
            Send
('q')
            
$q TimerInit()
        EndIf
    
WEnd
EndFunc 
omer36 is offline  
Old 08/23/2010, 17:31   #12
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
da ist auch nur aufgeführt das ein timer die abgelaufene zeit genau erfassen kann :P

ein timer hat den vorteil das man ihn nicht in einer schleife laufen lassen muss, wie es bei sleep der fall ist (alles andere wird blockiert) sondern man kann per abfragen die differenzen abfragen.

initialisieren kannst du timer einfach per $variable = timerinit(). dann wird eine variable mit der aktuellen computerlaufzeit angelegt. jetzt kannst du per timerdiff($variable) jeweils die zeit anschauen, die seit dem anlegen der $variable vergangen ist.

wie du siehst wird das script hier nicht unterbrochen. die hauptschleife kann alle anderen sachen immernoch durchlaufen. wenn nun eine gegebene differenz erreicht ist, kann dein programm die gewünschte funktion ausführen.

hab hier mal kurz dein script genommen um zu zeigen wie ichs meine:
Code:
Global $Input[15], $Label[12], $Checkbox[6]
$Input[0] = 14
$Label[0] = 11
$Checkbox [0] = 5
Global $MP, $MP2, $MP_T
Global $HP, $HP2, $HP_T
Global $Skill1_T, $Skill2_T, $Skill3_T, $Skill4_T, $Angreifen_T, $Aufheben_T
Global $Active = 0

$Form1 = GUICreate("Nos Trainer", 668, 339, 34, 111)
$Progress1 = GUICtrlCreateProgress(24, 48, 142, 17)
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$Progress2 = GUICtrlCreateProgress(224, 48, 142, 17)
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$Button1 = GUICtrlCreateButton("Start", 448, 224, 147, 25)
$Button2 = GUICtrlCreateButton("Stop", 448, 288, 147, 25)
$Checkbox[1] = GUICtrlCreateCheckbox("Snacks benutzen? (HP)", 24, 80, 145, 17, 0x0300)
$Checkbox[2] = GUICtrlCreateCheckbox("Snacks benutzen? (MP)", 224, 80, 145, 17, 0x0300)
$Checkbox[3] = GUICtrlCreateCheckbox("Angreifen", 24, 240, 145, 17, 0x0300)
$Checkbox[4] = GUICtrlCreateCheckbox("Skills Nutzen", 408, 24, 145, 17, 0x0300)
$Checkbox[5] = GUICtrlCreateCheckbox("Aufheben", 224, 240, 145, 17, 0x0300)
$Label[1] = GUICtrlCreateLabel("", 72, 48, 36, 17)
$Label[2] = GUICtrlCreateLabel("", 272, 48, 36, 17)
$Label[3] = GUICtrlCreateLabel("Health Points", 24, 24, 145, 17, 1)
$Label[4] = GUICtrlCreateLabel("Magic Points", 224, 24, 145, 17, 1)
$Label[5] = GUICtrlCreateLabel("Ab wieviel HP?", 24, 112, 145, 17, 1)
$Label[6] = GUICtrlCreateLabel("Ab wieviel MP?", 224, 112, 145, 17, 1)
$Label[7] = GUICtrlCreateLabel(" Taste vom Snack?", 24, 176, 145, 17, 1)
$Label[8] = GUICtrlCreateLabel("Taste vom Snack?", 224, 176, 145, 17, 1)
$Label[9] = GUICtrlCreateLabel("Sleep time?", 224, 272, 145, 17, 1)
$Label[10] = GUICtrlCreateLabel("Sleep time?", 24, 272, 145, 17, 1)
$Label[11] = GUICtrlCreateLabel("Sleep time?", 568, 25, 75, 17, 1)
$Input[1] = GUICtrlCreateInput("", 24, 136, 145, 21)
$Input[2] = GUICtrlCreateInput("", 224, 136, 145, 21)
$Input[3] = GUICtrlCreateInput("", 24, 200, 145, 21)
$Input[4] = GUICtrlCreateInput("", 224, 200, 145, 21)
$Input[5] = GUICtrlCreateInput("", 408, 48, 145, 21)
$Input[6] = GUICtrlCreateInput("", 408, 88, 145, 21)
$Input[7] = GUICtrlCreateInput("", 408, 128, 145, 21)
$Input[8] = GUICtrlCreateInput("", 408, 168, 145, 21)
$Input[9] = GUICtrlCreateInput("", 24, 296, 145, 21)
$Input[10] = GUICtrlCreateInput("", 224, 296, 145, 21)
$Input[11] = GUICtrlCreateInput("", 568, 48, 75, 21)
$Input[12] = GUICtrlCreateInput("", 568, 88, 75, 21)
$Input[13] = GUICtrlCreateInput("", 568, 128, 75, 21)
$Input[14] = GUICtrlCreateInput("", 568, 168, 75, 21)
GUISetState(@SW_SHOW)

For $a = 1 to 14
GUICtrlSetState($Input[$a], 128)
Next

For $b = 1 to 2
GUICtrlSetBkColor($Label[$b], -2)
Next


While 1
	Switch GUIGetMsg()
		Case -3
			Exit
		Case $Button1
			$Active = 1
			Start()
		Case $Button2
			Pause()
		Case Else
			GuiChecks()
	EndSwitch
WEnd

Func GuiChecks()
	If GUICTRLREAD($Checkbox[1]) = 1 Then
		Enable($Input[1])
		Enable($Input[3])
	Else
		Disable($Input[1])
		Disable($Input[3])
	EndIf

	If GUICTRLREAD($Checkbox[2]) = 1 Then
		Enable($Input[2])
		Enable($Input[4])
	Else
		Disable($Input[2])
		Disable($Input[4])
	EndIf

	IF GUICTRLREAD($Checkbox[3]) = 1 Then
		Enable($Input[9])
	Else
		Disable($Input[9])
	Endif

	If GUICTRLREAD($Checkbox[4]) = 1 Then
		Enable($Input[5])
		Enable($Input[6])
		Enable($Input[7])
		Enable($Input[8])
		Enable($Input[11])
		Enable($Input[12])
		Enable($Input[13])
		Enable($Input[14])
	Else
		Disable($Input[5])
		Disable($Input[6])
		Disable($Input[7])
		Disable($Input[8])
		Disable($Input[11])
		Disable($Input[12])
		Disable($Input[13])
		Disable($Input[14])
	EndIf

	IF GUICTRLREAD($Checkbox[5]) = 1 Then
		Enable($Input[10])
	Else
		Disable($Input[10])
	Endif
EndFunc
	
Func Start()
	Progress()
	If GUICTRLREAD($Checkbox[1]) = 1 Then
		HPSnacks()
	Endif
	If GUICTRLREAD($Checkbox[2]) = 1 Then
		MPSnacks()
	Endif
	If GUICTRLREAD($Checkbox[3]) = 1 Then
		Angreifen()
	Endif
	If GUICTRLREAD($Checkbox[4]) = 1 Then
		Skill1()
		Skill2()
		Skill3()
		Skill4()
	Endif
	If GUICTRLREAD($Checkbox[5]) = 1 Then
		Aufheben()
	Endif
EndFunc

Func Progress()
	For $x = $HP To $HP2
		GUICtrlSetData($progress1, $x)
		GUICtrlSetData($progress1, ($HP2 - $x))
	Next
	For $y = $MP To $MP2
		GUICtrlSetData($progress2, $y)
		GUICtrlSetData($progress2, ($MP2 - $y))
	Next
Endfunc

Func HPSnacks()
	If $HP < $HP2 And TimerDiff($HP_T) > GUICtrlRead($Input[3]) then
		CONTROLSEND("NosTale","",0, GUICtrlRead($Input[1]))
		$HP_T = TimerInit()
	Endif
Endfunc

Func MPSnacks()
	If $MP < $MP2 And TimerDiff($MP_T) > GUICtrlRead($Input[4]) then
		CONTROLSEND("NosTale","",0, GUICtrlRead($Input[2]))
		$MP_T = TimerInit()
	Endif
Endfunc

Func Angreifen()
	If TimerDiff($Angreifen_T) > GUICtrlRead($Input[9]) Then
		CONTROLSEND("NosTale","",0, "{Space}")
		$Angreifen_T = TimerInit()
	EndIf
Endfunc

Func Skill1()
	If TimerDiff($Skill1_T) > GUICtrlRead($Input[11]) Then
		CONTROLSEND("NosTale","",0, GUICtrlRead($Input[5]))
		$Skill1_T = TimerInit()
	EndIf
Endfunc

Func Skill2()
	If TimerDiff($Skill2_T) > GUICtrlRead($Input[12]) Then
		CONTROLSEND("NosTale","",0, GUICtrlRead($Input[6]))
		$Skill2_T = TimerInit()
	EndIf
Endfunc

Func Skill3()
	If TimerDiff($Skill3_T) > GUICtrlRead($Input[13]) Then
		CONTROLSEND("NosTale","",0, GUICtrlRead($Input[7]))
		$Skill3_T = TimerInit()
	EndIf
Endfunc

Func Skill4()
	If TimerDiff($Skill4_T) > GUICtrlRead($Input[14]) Then
		CONTROLSEND("NosTale","",0, GUICtrlRead($Input[8]))
		$Skill4_T = TimerInit()
	EndIf
Endfunc

Func Aufheben()
	If TimerDiff($Aufheben_T) > GUICtrlRead($Input[10]) Then
		CONTROLSEND("NosTale","",0, "{ö}")
		$Aufheben_T = TimerInit()
	EndIf
Endfunc

Func Pause()
	$Active = 0
Endfunc

Func Enable($control)
	If GUICtrlGetState($control) = 144 Then GUICtrlSetState($control, 64)
EndFunc

Func Disable($control)
	If GUICtrlGetState($control) = 80 Then GUICtrlSetState($control, 128)
EndFunc
habe jetzt das spiel nicht installiert ums zu testen aber sollte im prinziep alles so funktionieren.
lolkop is offline  
Old 08/24/2010, 01:12   #13
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Quote:
Originally Posted by pinguin94 View Post
Doch.


Kleines Zitat aus der Hilfe:
Quote:
As opposed to GUICtrlRead this function returns ONLY the state of a control enabled/disabled/hidden/show/dropaccepted
Ich für meinen Teil sehe kein checked/unchecked.
KDeluxe is offline  
Reply




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


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.