|
You last visited: Today at 17:17
Advertisement
$GUI_ENABLE / $GUI_DISABLE
Discussion on $GUI_ENABLE / $GUI_DISABLE within the AutoIt forum part of the Coders Den category.
08/21/2010, 23:33
|
#1
|
elite*gold: 20
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.ö)
Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <array.au3>
#include <NomadMemory.au3>
Global $Input[9]
$Input[0] = 8
Global $Label[9]
$Label[0] = 8
Global $Checkbox[6]
$Checkbox [0] = 5
$Form1 = GUICreate("Nostale Trainer", 395, 410, 102, 118)
$Progress1 = GUICtrlCreateProgress(24, 48, 145, 17)
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$Progress2 = GUICtrlCreateProgress(224, 48, 145, 17)
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$Button1 = GUICtrlCreateButton("Start", 24, 336, 131, 25)
$Button2 = GUICtrlCreateButton("Stop", 24, 368, 131, 25)
$Label[1] = GUICtrlCreateLabel("Label3", 77, 49, 40, 17)
$Label[2] = GUICtrlCreateLabel("Label4", 279, 49, 40, 17)
$Label[3] = GUICtrlCreateLabel("Health Points", 24, 24, 145, 21, $SS_CENTER)
$Label[4] = GUICtrlCreateLabel("Magic Points", 224, 24, 145, 21, $SS_CENTER)
$Checkbox[1] = GUICtrlCreateCheckbox("Snacks benutzen? (HP)", 24, 80, 145, 21, BitOR($GUI_SS_DEFAULT_CHECKBOX,$BS_CENTER))
$Checkbox[2] = GUICtrlCreateCheckbox("Snacks benutzen? (MP)", 224, 80, 145, 21, BitOR($GUI_SS_DEFAULT_CHECKBOX,$BS_CENTER))
$Label[5] = GUICtrlCreateLabel("Ab wieviel HP?", 24, 112, 145, 21, $SS_CENTER)
$Input[1] = GUICtrlCreateInput("", 24, 136, 145, 21)
$Label[6] = GUICtrlCreateLabel("Ab wieviel MP?", 224, 112, 145, 21, $SS_CENTER)
$Input[2] = GUICtrlCreateInput("", 224, 136, 145, 21)
$Label[7] = GUICtrlCreateLabel("Snack Taste?", 24, 176, 145, 21, $SS_CENTER)
$Label[8] = GUICtrlCreateLabel("Snack Taste?", 224, 176, 145, 21, $SS_CENTER)
$Input[3] = GUICtrlCreateInput("", 24, 200, 145, 21)
$Input[4] = GUICtrlCreateInput("", 224, 200, 145, 21)
$Checkbox[3] = GUICtrlCreateCheckbox("Angreifen", 24, 248, 145, 21, BitOR($GUI_SS_DEFAULT_CHECKBOX,$BS_CENTER))
$Checkbox[4] = GUICtrlCreateCheckbox("Skills Nutzen", 224, 248, 145, 21, BitOR($GUI_SS_DEFAULT_CHECKBOX,$BS_CENTER))
$Checkbox[5] = GUICtrlCreateCheckbox("Aufheben", 24, 272, 145, 21, BitOR($GUI_SS_DEFAULT_CHECKBOX,$BS_CENTER))
$Input[5] = GUICtrlCreateInput("", 224, 272, 145, 21)
$Input[6] = GUICtrlCreateInput("", 224, 304, 145, 21)
$Input[7] = GUICtrlCreateInput("", 224, 336, 145, 21)
$Input[8] = GUICtrlCreateInput("", 224, 368, 145, 21)
GUISetState(@SW_SHOW)
For $a = 1 to 8
GUICtrlSetState($Input[$a], $GUI_DISABLE)
Next
For $b = 1 to 2
GUICtrlSetBkColor($Label[$b], $GUI_BKCOLOR_TRANSPARENT)
Next
While 1
If GUICTRLREAD($Checkbox[1]) = 1 then GUICtrlSetState($Input[1], $GUI_ENABLE)
If GUICTRLREAD($Checkbox[1]) = 0 then GUICtrlSetState($Input[1], $GUI_DISABLE)
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
If ProcessExists("NostaleX.dat") = 0 then msgbox (16, "Nostale", "Nostale ist nicht Offen")
If ProcessExists("NostaleX.dat") = 1 then
Exit
endif
EndSwitch
WEnd
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
|
|
|
08/22/2010, 02:37
|
#2
|
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438
|
Quote:
Originally Posted by DarkGER!
- 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!
(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!
wie kann man den text in ner Label ändern?^^
|
GUICtrlSetData()
Quote:
Originally Posted by DarkGER!
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...
|
|
|
08/22/2010, 11:11
|
#3
|
elite*gold: 20
Join Date: Nov 2009
Posts: 2,256
Received Thanks: 1,570
|
Quote:
Originally Posted by | Moep |
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.
|
|
|
08/22/2010, 13:13
|
#4
|
elite*gold: 255
Join Date: Nov 2009
Posts: 2,900
Received Thanks: 1,408
|
Quote:
Originally Posted by DarkGER!
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.ö)
Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <array.au3>
#include <NomadMemory.au3>
Global $Input[9]
$Input[0] = 8
Global $Label[9]
$Label[0] = 8
Global $Checkbox[6]
$Checkbox [0] = 5
$Form1 = GUICreate("Nostale Trainer", 395, 410, 102, 118)
$Progress1 = GUICtrlCreateProgress(24, 48, 145, 17)
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$Progress2 = GUICtrlCreateProgress(224, 48, 145, 17)
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$Button1 = GUICtrlCreateButton("Start", 24, 336, 131, 25)
$Button2 = GUICtrlCreateButton("Stop", 24, 368, 131, 25)
$Label[1] = GUICtrlCreateLabel("Label3", 77, 49, 40, 17)
$Label[2] = GUICtrlCreateLabel("Label4", 279, 49, 40, 17)
$Label[3] = GUICtrlCreateLabel("Health Points", 24, 24, 145, 21, $SS_CENTER)
$Label[4] = GUICtrlCreateLabel("Magic Points", 224, 24, 145, 21, $SS_CENTER)
$Checkbox[1] = GUICtrlCreateCheckbox("Snacks benutzen? (HP)", 24, 80, 145, 21, BitOR($GUI_SS_DEFAULT_CHECKBOX,$BS_CENTER))
$Checkbox[2] = GUICtrlCreateCheckbox("Snacks benutzen? (MP)", 224, 80, 145, 21, BitOR($GUI_SS_DEFAULT_CHECKBOX,$BS_CENTER))
$Label[5] = GUICtrlCreateLabel("Ab wieviel HP?", 24, 112, 145, 21, $SS_CENTER)
$Input[1] = GUICtrlCreateInput("", 24, 136, 145, 21)
$Label[6] = GUICtrlCreateLabel("Ab wieviel MP?", 224, 112, 145, 21, $SS_CENTER)
$Input[2] = GUICtrlCreateInput("", 224, 136, 145, 21)
$Label[7] = GUICtrlCreateLabel("Snack Taste?", 24, 176, 145, 21, $SS_CENTER)
$Label[8] = GUICtrlCreateLabel("Snack Taste?", 224, 176, 145, 21, $SS_CENTER)
$Input[3] = GUICtrlCreateInput("", 24, 200, 145, 21)
$Input[4] = GUICtrlCreateInput("", 224, 200, 145, 21)
$Checkbox[3] = GUICtrlCreateCheckbox("Angreifen", 24, 248, 145, 21, BitOR($GUI_SS_DEFAULT_CHECKBOX,$BS_CENTER))
$Checkbox[4] = GUICtrlCreateCheckbox("Skills Nutzen", 224, 248, 145, 21, BitOR($GUI_SS_DEFAULT_CHECKBOX,$BS_CENTER))
$Checkbox[5] = GUICtrlCreateCheckbox("Aufheben", 24, 272, 145, 21, BitOR($GUI_SS_DEFAULT_CHECKBOX,$BS_CENTER))
$Input[5] = GUICtrlCreateInput("", 224, 272, 145, 21)
$Input[6] = GUICtrlCreateInput("", 224, 304, 145, 21)
$Input[7] = GUICtrlCreateInput("", 224, 336, 145, 21)
$Input[8] = GUICtrlCreateInput("", 224, 368, 145, 21)
GUISetState(@SW_SHOW)
For $a = 1 to 8
GUICtrlSetState($Input[$a], $GUI_DISABLE)
Next
For $b = 1 to 2
GUICtrlSetBkColor($Label[$b], $GUI_BKCOLOR_TRANSPARENT)
Next
While 1
If GUICTRLREAD($Checkbox[1]) = 1 then GUICtrlSetState($Input[1], $GUI_ENABLE)
If GUICTRLREAD($Checkbox[1]) = 0 then GUICtrlSetState($Input[1], $GUI_DISABLE)
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
If ProcessExists("NostaleX.dat") = 0 then msgbox (16, "Nostale", "Nostale ist nicht Offen")
If ProcessExists("NostaleX.dat") = 1 then
Exit
endif
EndSwitch
WEnd
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]:
PHP Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <array.au3>
#include <NomadMemory.au3>
Global $Input[9]
$Input[0] = 8
Global $Label[9]
$Label[0] = 8
Global $Checkbox[6]
$Checkbox [0] = 5
Global $check = 1
$Form1 = GUICreate("Nostale Trainer", 395, 410, 102, 118)
$Progress1 = GUICtrlCreateProgress(24, 48, 145, 17)
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$Progress2 = GUICtrlCreateProgress(224, 48, 145, 17)
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$Button1 = GUICtrlCreateButton("Start", 24, 336, 131, 25)
$Button2 = GUICtrlCreateButton("Stop", 24, 368, 131, 25)
$Label[1] = GUICtrlCreateLabel("Label3", 77, 49, 40, 17)
$Label[2] = GUICtrlCreateLabel("Label4", 279, 49, 40, 17)
$Label[3] = GUICtrlCreateLabel("Health Points", 24, 24, 145, 21, $SS_CENTER)
$Label[4] = GUICtrlCreateLabel("Magic Points", 224, 24, 145, 21, $SS_CENTER)
$Checkbox[1] = GUICtrlCreateCheckbox("Snacks benutzen? (HP)", 24, 80, 145, 21, BitOR($GUI_SS_DEFAULT_CHECKBOX,$BS_CENTER))
$Checkbox[2] = GUICtrlCreateCheckbox("Snacks benutzen? (MP)", 224, 80, 145, 21, BitOR($GUI_SS_DEFAULT_CHECKBOX,$BS_CENTER))
$Label[5] = GUICtrlCreateLabel("Ab wieviel HP?", 24, 112, 145, 21, $SS_CENTER)
$Input[1] = GUICtrlCreateInput("", 24, 136, 145, 21)
$Label[6] = GUICtrlCreateLabel("Ab wieviel MP?", 224, 112, 145, 21, $SS_CENTER)
$Input[2] = GUICtrlCreateInput("", 224, 136, 145, 21)
$Label[7] = GUICtrlCreateLabel("Snack Taste?", 24, 176, 145, 21, $SS_CENTER)
$Label[8] = GUICtrlCreateLabel("Snack Taste?", 224, 176, 145, 21, $SS_CENTER)
$Input[3] = GUICtrlCreateInput("", 24, 200, 145, 21)
$Input[4] = GUICtrlCreateInput("", 224, 200, 145, 21)
$Checkbox[3] = GUICtrlCreateCheckbox("Angreifen", 24, 248, 145, 21, BitOR($GUI_SS_DEFAULT_CHECKBOX,$BS_CENTER))
$Checkbox[4] = GUICtrlCreateCheckbox("Skills Nutzen", 224, 248, 145, 21, BitOR($GUI_SS_DEFAULT_CHECKBOX,$BS_CENTER))
$Checkbox[5] = GUICtrlCreateCheckbox("Aufheben", 24, 272, 145, 21, BitOR($GUI_SS_DEFAULT_CHECKBOX,$BS_CENTER))
$Input[5] = GUICtrlCreateInput("", 224, 272, 145, 21)
$Input[6] = GUICtrlCreateInput("", 224, 304, 145, 21)
$Input[7] = GUICtrlCreateInput("", 224, 336, 145, 21)
$Input[8] = GUICtrlCreateInput("", 224, 368, 145, 21)
GUISetState(@SW_SHOW)
For $a = 1 to 8
GUICtrlSetState($Input[$a], $GUI_DISABLE)
Next
For $b = 1 to 2
GUICtrlSetBkColor($Label[$b], $GUI_BKCOLOR_TRANSPARENT)
Next
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
If ProcessExists("NostaleX.dat") = 0 then msgbox (16, "Nostale", "Nostale ist nicht Offen")
If ProcessExists("NostaleX.dat") = 1 then
Exit
endif
EndSwitch
If $check = 1 AND GUICTRLREAD($Checkbox[1]) = 1 Then
GUICtrlSetState($Input[1], $GUI_ENABLE)
$check = 0
EndIf
If $check = 0 AND GUICTRLREAD($Checkbox[1]) = 4 Then
GUICtrlSetState($Input[1], $GUI_DISABLE)
$check = 1
EndIf
WEnd
Wenn eine Checkbox disabled ist, hat sie nicht den Wert 0, sondern 4
|
|
|
08/22/2010, 17:49
|
#5
|
elite*gold: 20
Join Date: Nov 2009
Posts: 2,256
Received Thanks: 1,570
|
nochein kleines problem
Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <array.au3>
#include <NomadMemory.au3>
Global $Input[15]
$Input[0] = 14
Global $Label[12]
$Label[0] = 11
Global $Checkbox[6]
$Checkbox [0] = 5
Global $Check = 1
Global $Check2 = 1
Global $Check3 = 1
Global $check4 = 1
Global $check5 = 1
Global $MP = 1
Global $MP2 = 1
Global $HP = 1
Global $HP2 = 1
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, BitOR($GUI_SS_DEFAULT_CHECKBOX,$BS_CENTER))
$Checkbox[2] = GUICtrlCreateCheckbox("Snacks benutzen? (MP)", 224, 80, 145, 17, BitOR($GUI_SS_DEFAULT_CHECKBOX,$BS_CENTER))
$Checkbox[3] = GUICtrlCreateCheckbox("Angreifen", 24, 240, 145, 17, BitOR($GUI_SS_DEFAULT_CHECKBOX,$BS_CENTER))
$Checkbox[4] = GUICtrlCreateCheckbox("Skills Nutzen", 408, 24, 145, 17, BitOR($GUI_SS_DEFAULT_CHECKBOX,$BS_CENTER))
$Checkbox[5] = GUICtrlCreateCheckbox("Aufheben", 224, 240, 145, 17, BitOR($GUI_SS_DEFAULT_CHECKBOX,$BS_CENTER))
$Label[1] = GUICtrlCreateLabel("", 72, 48, 36, 17)
$Label[2] = GUICtrlCreateLabel("", 272, 48, 36, 17)
$Label[3] = GUICtrlCreateLabel("Health Points", 24, 24, 145, 17, $SS_CENTER)
$Label[4] = GUICtrlCreateLabel("Magic Points", 224, 24, 145, 17, $SS_CENTER)
$Label[5] = GUICtrlCreateLabel("Ab wieviel HP?", 24, 112, 145, 17, $SS_CENTER)
$Label[6] = GUICtrlCreateLabel("Ab wieviel MP?", 224, 112, 145, 17, $SS_CENTER)
$Label[7] = GUICtrlCreateLabel(" Taste vom Snack?", 24, 176, 145, 17, $SS_CENTER)
$Label[8] = GUICtrlCreateLabel("Taste vom Snack?", 224, 176, 145, 17, $SS_CENTER)
$Label[9] = GUICtrlCreateLabel("Sleep time?", 224, 272, 145, 17, $SS_CENTER)
$Label[10] = GUICtrlCreateLabel("Sleep time?", 24, 272, 145, 17, $SS_CENTER)
$Label[11] = GUICtrlCreateLabel("Sleep time?", 568, 25, 75, 17, $SS_CENTER)
$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], $GUI_DISABLE)
Next
For $b = 1 to 2
GUICtrlSetBkColor($Label[$b], $GUI_BKCOLOR_TRANSPARENT)
Next
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
If ProcessExists("NostaleX.dat") = 0 then msgbox (16, "Nostale", "Nostale ist nicht Offen")
$PID = ProcessWait ("NostaleX.dat")
If ProcessExists("NostaleX.dat") = $PID then
$Active = 1
Endif
If $Active = 1 then
Start()
Wend
Case $Button2
Pause()
EndSwitch
If $check = 1 AND GUICTRLREAD($Checkbox[1]) = 1 Then
GUICtrlSetState($Input[1], $GUI_ENABLE)
GUICtrlSetState($Input[3], $GUI_ENABLE)
$check = 0
EndIf
If $check = 0 AND GUICTRLREAD($Checkbox[1]) = 4 Then
GUICtrlSetState($Input[1], $GUI_DISABLE)
GUICtrlSetState($Input[3], $GUI_DISABLE)
$check = 1
EndIf
If $check2 = 1 AND GUICTRLREAD($Checkbox[2]) = 1 Then
GUICtrlSetState($Input[2], $GUI_ENABLE)
GUICtrlSetState($Input[4], $GUI_ENABLE)
$check2 = 0
EndIf
If $check2 = 0 AND GUICTRLREAD($Checkbox[2]) = 4 Then
GUICtrlSetState($Input[2], $GUI_DISABLE)
GUICtrlSetState($Input[4], $GUI_DISABLE)
$check2 = 1
EndIf
If $check3 = 1 AND GUICTRLREAD($Checkbox[4]) = 1 Then
GUICtrlSetState($Input[5], $GUI_ENABLE)
GUICtrlSetState($Input[6], $GUI_ENABLE)
GUICtrlSetState($Input[7], $GUI_ENABLE)
GUICtrlSetState($Input[8], $GUI_ENABLE)
GUICtrlSetState($Input[11], $GUI_ENABLE)
GUICtrlSetState($Input[12], $GUI_ENABLE)
GUICtrlSetState($Input[13], $GUI_ENABLE)
GUICtrlSetState($Input[14], $GUI_ENABLE)
$check3 = 0
EndIf
If $check3 = 0 AND GUICTRLREAD($Checkbox[4]) = 4 Then
GUICtrlSetState($Input[5], $GUI_DISABLE)
GUICtrlSetState($Input[6], $GUI_DISABLE)
GUICtrlSetState($Input[7], $GUI_DISABLE)
GUICtrlSetState($Input[8], $GUI_DISABLE)
GUICtrlSetState($Input[11], $GUI_DISABLE)
GUICtrlSetState($Input[12], $GUI_DISABLE)
GUICtrlSetState($Input[13], $GUI_DISABLE)
GUICtrlSetState($Input[14], $GUI_DISABLE)
$check3 = 1
EndIf
IF $Check4 = 1 And GUICTRLREAD($Checkbox[3]) = 1 Then
GUICtrlSetState($Input[9], $GUI_ENABLE)
$check4 = 0
Endif
IF $Check4 = 0 And GUICTRLREAD($Checkbox[3]) = 4 Then
GUICtrlSetState($Input[9], $GUI_DISABLE)
$check4 = 1
Endif
IF $Check5 = 1 And GUICTRLREAD($Checkbox[5]) = 1 Then
GUICtrlSetState($Input[10], $GUI_ENABLE)
$check5 = 0
Endif
IF $Check5 = 0 And GUICTRLREAD($Checkbox[5]) = 4 Then
GUICtrlSetState($Input[10], $GUI_DISABLE)
$check5 = 1
Endif
WEnd
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 then
CONTROLSEND("NosTale","",0, $Input[1])
Sleep ($Input[3])
Endif
Endfunc
Func MPSnacks()
if $MP < $MP2 then
CONTROLSEND("NosTale","",0, $Input[2])
Sleep ($Input[4])
Endif
Endfunc
Func Angreifen()
CONTROLSEND("NosTale","",0, "{Space}")
Sleep ($Input[9])
Endfunc
Func Skill1()
CONTROLSEND("NosTale","",0, $Input[5])
Sleep (GUICTRLREAD($Input[11]))
Endfunc
Func Skill2()
CONTROLSEND("NosTale","",0, $Input[6])
Sleep (GUICTRLREAD($Input[12]))
Endfunc
Func Skill3()
CONTROLSEND("NosTale","",0, $Input[7])
Sleep (GUICTRLREAD($Input[13]))
Endfunc
Func Skill4()
CONTROLSEND("NosTale","",0, $Input[8])
Sleep (GUICTRLREAD($Input[14]))
Endfunc
Func Aufheben()
CONTROLSEND("NosTale","",0, "{ö}")
Sleep (GUICTRLREAD($Input[10]))
Endfunc
Func Pause()
$Active = 0
Endfunc
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  )
|
|
|
08/22/2010, 18:29
|
#6
|
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.
|
|
|
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
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_CHECKED) Then
;...
EndIf
PHP Code:
If BitAnd(GUICtrlRead($CheckBox), $GUI_CHECKED) = True Then
;...
EndIf
PHP Code:
If BitAnd(GUICtrlRead($CheckBox), $GUI_CHECKED) == $GUI_CHECKED Then
;...
EndIf
|
|
|
08/22/2010, 22:18
|
#8
|
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.
|
|
|
08/23/2010, 15:55
|
#9
|
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
|
Quote:
Originally Posted by KillerDeluxe
GUICtrlGetState würde dir nie 0, 1, oder 4 zurück geben.
|
Doch.
|
|
|
08/23/2010, 16:49
|
#10
|
elite*gold: 20
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
|
|
|
08/23/2010, 17:29
|
#11
|
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() $2 = 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') $2 = TimerInit() EndIf If TimerDiff($q) >= 4000 Then Send('q') $q = TimerInit() EndIf WEnd EndFunc
|
|
|
08/23/2010, 17:31
|
#12
|
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.
|
|
|
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
Doch.
|
Auch wenn du dir den Finger wund klickst, es wird nicht funktionieren:
PHP Code:
GUICreate("Form", 125, 30)
$Checkbox = GUICtrlCreateCheckbox("Checkbox", 10, 5)
GUISetState()
While True
$Msg = GUIGetMsg()
If $Msg == -3 Then Exit
If $Msg == $Checkbox Then
If BitAnd(GUICtrlGetState($CheckBox), 4) Then
MsgBox(0, 1, 2)
EndIf
EndIf
WEnd
Das beste ist immer noch:
PHP Code:
#include <GUIConstantsEx.au3>
GUICreate("Form", 125, 30)
$Checkbox = GUICtrlCreateCheckbox("Checkbox", 10, 5)
GUISetState()
While True
$Msg = GUIGetMsg()
If $Msg == $GUI_EVENT_CLOSE Then Exit
If $Msg == $Checkbox Then
If BitAnd(GUICtrlRead($CheckBox), $GUI_CHECKED) Then
MsgBox(0, 1, 2)
EndIf
EndIf
WEnd
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.
|
|
|
All times are GMT +1. The time now is 17:17.
|
|