WinWait("Fenster") $get1 = GUICtrlRead($resolution) $pixel1 = PixelSearch(720,418,721,419,0x3C4757) If $get1 = "1440x900" Then Do $pixel1 Until $pixel1 = 1 MsgBox(0,"Found","Found") EndIf
Es muss an der If-Abfrage liegen, kann nur nich sagen woran...
Gedanke is, dass es nach einem bestimmten Wert in einer Combobox (den Teil hab ich schon) ein bestimmtes Pixel sucht (je nach Auflösung eben).
Problem is, dass sich die GUI schließt, sobald das Fenster in dem es suchen soll auftaucht.
$loadevery1 = GUICtrlCreateCheckbox("Want to load this every time?", 16, 68, 233, 17)
GUICtrlSetTip(-1 , "Not used yet")
$loadevery2 = GUICtrlCreateCheckbox("Want to load this every time?", 16, 195, 233, 17)
GUICtrlSetTip(-1 , "Not used yet")
$windowed = GUICtrlCreateCheckbox("Windowed", 16, 235, 105, 17)
GUICtrlSetTip(-1 , "Only if you use Window mode")
$news = GUICtrlCreateCheckbox("Click Announcement", 140, 235, 180, 17)
GUICtrlSetTip(-1 , "Only if you know that you haven't clicked it today")
Case $GUI_EVENT_CLOSE
GUIDelete()
Exit
Case $save1
save()
Case $load1
load()
Case $getpath
getpath()
Case $savepath
savepath()
Case $loadpath
loadpath()
Case $start
start()
While True ; Get Path from S4 by using the software-installed information in registry
$i +=1
$keyname = RegEnumKey("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\", $i)
If @error Then ExitLoop
Func start()
$s4path = GUICtrlRead($path)
ShellExecute($s4path & "\patcher_s4.exe", "", $s4path)
WinWait("S4 League Game Launcher")
ControlClick("S4 League Game Launcher", "", "[CLASS:Button; INSTANCE:2]")
WinWait("S4 Client")
$get1 = GUICtrlRead($resolution)
$pixel1 = PixelSearch(720,418,721,419,0x3C4757)
If $get1 = "1440x900" Then
Do
$pixel1 Until $pixel1 = 1
MsgBox(0,"Found","Found")
EndIf
kommt da ne Fehlermeldung, oder wie beendet er sich?
Die WhileSchleife wird nämlich nach Aufrufen der Funktion wieder aufgenommen und es gibt weder Exit noch ExitLoop --> nichts was das Programm geplant beendet und vllt. ausversehn aufgerufen wurde.
.nAno hats dir doch schon gesagt
normalerweise solltest du auch einen compiler fehler kriegen
Code:
$pixel1 = PixelSearch(720,418,721,419,0x3C4757)
If $get1 = "1440x900" Then
Do
$pixel1
Until $pixel1 = 1
MsgBox(0,"Found","Found")
EndIf
^this
wenn $pixel1 nicht aktualisiert wird, dann wird die schleife niemals beendet
Code:
$pixel1 = PixelSearch(720,418,721,419,0x3C4757)
If $get1 = "1440x900" Then
Do
$pixel1 = PixelSearch(720,418,721,419,0x3C4757)
Until $pixel1 = 1
MsgBox(0,"Found","Found")
EndIf
kommt da ne Fehlermeldung, oder wie beendet er sich?
Die WhileSchleife wird nämlich nach Aufrufen der Funktion wieder aufgenommen und es gibt weder Exit noch ExitLoop --> nichts was das Programm geplant beendet und vllt. ausversehn aufgerufen wurde.
Es geht einfach aus, ohne einen Mux... Aber eben nur nachdem das Fenster "S4 Client" aufgetaucht ist -> also muss es an der Do-Until-Schleife liegen...
EDIT:
Ich hab das mit
Code:
$pixel1 = PixelSearch(720,418,721,419,0x3C4757)
If $get1 = "1440x900" Then
Do
$pixel1 = PixelSearch(720,418,721,419,0x3C4757)
Until $pixel1 = 1
MsgBox(0,"Found","Found")
EndIf
Setz mal Debugger in die Do/Until Schleife und schau wieoft sie auftaucht, ob überhaupt oder immer (da sich der Wert von $pixel wie schon gesagt nicht ändern kann)
EDIT: außerdem müsstest du schon so nen Fehler haben, da PixelSearch nen Array returned, wenn dein Prog. überhaupt mal funktioniert wirst du da auch ein Problem bekommen, da du die Variable überhaupt nicht wie einen Array behandelst...
Ja, x,y returned die... bloß damit kann ich nix anfangen -> vllt True/False benutzen?
Probiers mal mit PixelGetColor(...) bzw PixelChecksum , könnte vielleicht das erreichen was du willst .
Wenn du einfach nur überprüfen willst ob die Pixel in einem Bereich gefunden wurden , kannst du das so machen :
PHP Code:
do $pixel=PixelSearch(720,418,721,419,0x3C4757) until Isarray($pixel)<>1
Wobei man bei dir nicht umbedingt PixelSearch braucht , da du nur einen einzigen Pixel überprüfen lässt . PixelGetColor wäre wohl besser :
PHP Code:
do sleep(100) ;reduziert die CPU Auslastung until PixelGetColor ( 721 , 419)=0x3C4757
Falls du noch genaueres zu dem Pixel gezeugse haben willst :
Probiers mal mit PixelGetColor(...) bzw PixelChecksum , könnte vielleicht das erreichen was du willst .
Wenn du einfach nur überprüfen willst ob die Pixel in einem Bereich gefunden wurden , kannst du das so machen :
PHP Code:
do
$pixel=PixelSearch(720,418,721,419,0x3C4757)
until Isarray($pixel)<>1
Wobei man bei dir nicht umbedingt PixelSearch braucht , da du nur einen einzigen Pixel überprüfen lässt . PixelGetColor wäre wohl besser :
PHP Code:
do
sleep(100) ;reduziert die CPU Auslastung
until PixelGetColor ( 721 , 419)=0x3C4757
Falls du noch genaueres zu dem Pixel gezeugse haben willst :
Letzteres hat mich schonmal soweit gebracht, dass es sucht, und nicht schließt. Jetzt findets nur nix Oo
Vllt ne Varianz von 5 oder so?
EDIT: Wenn ich es so mache:
PHP Code:
$get1 = GUICtrlRead($resolution)
If $get1 = "1440x900" Then
Do
$pixel=PixelSearch(720,418,721,419,0x3C4757)
Until Isarray($pixel)<>1
If Isarray($pixel)<>1 Then
MsgBox(0,"Found","Found")
ElseIf Isarray($pixel)<>0 Then
MsgBox(0,"Couldn't find", "Couldn't find")
EndIf
EndIf
Dann findets das Pixel sofort wenn der Prozess startet -.-
Letzteres hat mich schonmal soweit gebracht, dass es sucht, und nicht schließt. Jetzt findets nur nix Oo
Vllt ne Varianz von 5 oder so?
EDIT: Wenn ich es so mache:
PHP Code:
$get1 = GUICtrlRead($resolution) If $get1 = "1440x900" Then Do $pixel=PixelSearch(720,418,721,419,0x3C4757) Until Isarray($pixel)<>1 If Isarray($pixel)<>1 Then MsgBox(0,"Found","Found") ElseIf Isarray($pixel)<>0 Then MsgBox(0,"Couldn't find", "Couldn't find") EndIf EndIf
Dann findets das Pixel sofort wenn der Prozess startet -.-
Bei dir findet er das Pixel eben nicht , wenn der Prozess startet .
Dir ist da nämlixh ein Fehler reingerutsch , so müsste es sein :
PHP Code:
$get1 = GUICtrlRead($resolution) If $get1 = "1440x900" Then Do $pixel=PixelSearch(720,418,721,419,0x3C4757) Until Isarray($pixel) If Isarray($pixel) Then MsgBox(0,"Found","Found") ElseIf Isarray($pixel)=0 Then MsgBox(0,"Couldn't find", "Couldn't find") EndIf EndIf
Jetzt findets wieder nichts... hab auch nochmal die Farbe überprüft...
Vielleicht solltest du die Varianz bisschen höher stellen ?
Villeicht so auf 3 .
Edit : Oder es liegt einfach nur daran , dass er die Farbe theoretisch garnicht finden kann ?
(Ich weiß nicht so genau wie PixelSeach arbeitet) . Soviel wie ich mich erinnern kann , sucht PixelSearch immer das Gebiet zwischen den angegeben Koordinaten ab und welcher Pixel liegt zwischen 418 und 419 ? Etwa 418,5 ? Mach das eine mal eins hoch bzw eins runter (das selbe auch bei Y Koordinate) .
S4 schließt sich 07/02/2010 - S4 League - 8 Replies Abend :)
Als ich heute mich engeloggt habe schaute ich nach meinem Clan. Ich schließte das Fenster. Spielte ne Runde. Gin Lobby und wollte nochmal nach schauen, aber s4 schloss sich. Ich loggte mich noch mal ein, aber s4 schloss sich wieder. Nach 4 Versuchen gab ich auf. Warum schließt sich immer S4?
wr schließt sich 05/08/2010 - WarRock - 4 Replies hey,
wenn ich normal spiele, keine hacks oder so, mitten drin schließt sich warrock einfach, ohne meldung oder sonstwas. weiß jemand wieso? würd gerne normal spielen.
mfg pluschki
Fly for Fame schließt sich 03/04/2010 - Flyff - 1 Replies Hallo,
habe alles patchen lassen und so,
aber immer wenn ich Fly for Fame starte, drücke auf Start -> öffnet sich flyff fenster, dann schließt sich einfach fly for fame automatisch..
was ist das?
wie beheebe ich das
Metin schließt sich 02/28/2010 - Metin2 - 4 Replies Hey Leute
Wollte mal wieder in DE reinschaun .. er hat alles geladen und so .. dann hab ic mich eingeloggt ...
aber dann kam anmeldevorgang ... und dann schliießt sch das metin fenster ô.O
Hat wer ne ahnung was da los ist? ô.O
Is auf Server Phelon .. die anderen noch nich getestet!
P-Server schließt sich 12/30/2009 - Metin2 Private Server - 4 Replies Hi leute ich habe folgendes problem:
ich habe einen pserver aufgemacht nach einem VTUT und bin soweit auch mit allem zurecht gekommen nur wenn ich mich mit den daten rain, 12345 einlogge
steht bei mir
1. du wirst mit dem server verbunden
2. anmeldevorgang läuf
3. schwarzes fenster (ganz kurz)
4. P-server schließt sich
Könnte es eventuell an fehlenden Ports liegen?
Hab folgende: