Fehler aber wo ?

01/26/2011 16:21 nelly35000#1
hallo,
Ich hab einen Bot programmiert und der hat auch ganz normal funktioniert (auf meinem PC) und jetzt wollte ich ihn auf meinem Laptop starten (Win7 64 bit)
und da kommt immer der Fehler:
"Line7
Error:Subscript used with non-Array variable"
wenn ich F5 klicke also zum starten des Bots.
Könnt ihr mir helfen den Fehler zu finden ?

Code:
#include <ImageSearch.au3>

Global $Paused
HotKeySet("{F5}","starten")
HotKeySet ("{F6}", "Terminate")
HotKeySet ("{F7}", "Pause")

$x1 = 0
$y1 = 0

$x2 = 0
$y2 = 0

$x3 = 0
$y3 = 0

$x4 = 0
$y4 = 0

$x5 = 0
$y5 = 0

$x6 = 0
$y6 = 0

$x7 = 0
$y7 = 0

While 1
    sleep(1)
WEnd

Func starten()
    While 1
        $result1=_Imagesearch("Geld.png",1,$x1,$y1,20)
        If $result1=1 Then
            MouseMove($x1,$y1,0)
			Sleep(500)
			MouseClick("left")
			Sleep(100)
            EndIf
        $result2=_Imagesearch("Verträge.png",1,$x2,$y2,20)
        If $result2=1 Then
            MouseMove($x2,$y2,0)
			Sleep(500)
			MouseClick("left")			
            Sleep(100)			
            EndIf
        $result3=_Imagesearch("3min.png",1,$x3,$y3,0)
        If $result3=1 Then
			MouseMove($x3,$y3,0)
			Sleep(500)
			MouseClick("left")			
            Sleep(100)		   
		EndIf
		 $result4=_Imagesearch("gift.png",1,$x4,$y4,0)
        If $result4=1 Then
            MouseMove($x4,$y4,0)
			Sleep(400)
			MouseClick("left")
			Sleep(100)
		EndIf
		  $result5=_Imagesearch("pizza.png",1,$x5,$y5,0)
        If $result5=1 Then
            MouseMove($x5,$y5,0)
			Sleep(500)
			MouseClick("left")
			Sleep(100)
		EndIf
		  $result6=_Imagesearch("exit.png",1,$x6,$y6,0)
        If $result6=1 Then
            MouseMove($x6,$y6,0)
			Sleep(500)
			MouseClick("left")
		EndIf
		  $result7=_Imagesearch("exit2.png",1,$x7,$y7,0)
        If $result7=1 Then
            MouseMove($x7,$y7,0)
			Sleep(500)
			MouseClick("left")
            EndIf
WEnd
EndFunc


Func Terminate ()
	Exit 0
EndFunc
	
	
	Func Pause()
    $Paused = NOT $Paused
	
    While $Paused
        sleep(100)
        ToolTip('Script is "Paused"',0,0)
    WEnd
    ToolTip("")
EndFunc
Exit
01/26/2011 16:47 maxi39#2
hab kurz ma rübergeschaut und eigentlich keine fehler endeckt. Nur ein paar formal fehler..., Also auf jeden fall ein admin vorsetzen beim script und die variablen nicht unter die hotkeys setzen oda das sleep in der while schleife vergrößeren damit der cpu entlastet wird, was aba eig auch nichts ausmacht.

Ich denke es liegt an der imagesearch.au3, poste die ma.


PHP Code:
#RequireAdmin
#include <ImageSearch.au3>
$x1 0
$y1 
0

$x2 
0
$y2 
0

$x3 
0
$y3 
0

$x4 
0
$y4 
0

$x5 
0
$y5 
0

$x6 
0
$y6 
0

$x7 
0
$y7 
0

Global $Paused
HotKeySet
("{F5}","starten")
HotKeySet ("{F6}""Terminate")
HotKeySet ("{F7}""Pause")



While 
1
    sleep
(100)
WEnd

Func starten
()
    While 
1
        $result1
=_Imagesearch("Geld.png",1,$x1,$y1,20)
        If 
$result1=1 Then
            MouseMove
($x1,$y1,0)
            
Sleep(500)
            
MouseClick("left")
            
Sleep(100)
            EndIf
        
$result2=_Imagesearch("Verträge.png",1,$x2,$y2,20)
        If 
$result2=1 Then
            MouseMove
($x2,$y2,0)
            
Sleep(500)
            
MouseClick("left")
            
Sleep(100)
            EndIf
        
$result3=_Imagesearch("3min.png",1,$x3,$y3,0)
        If 
$result3=1 Then
            MouseMove
($x3,$y3,0)
            
Sleep(500)
            
MouseClick("left")
            
Sleep(100)
        EndIf
         
$result4=_Imagesearch("gift.png",1,$x4,$y4,0)
        If 
$result4=1 Then
            MouseMove
($x4,$y4,0)
            
Sleep(400)
            
MouseClick("left")
            
Sleep(100)
        EndIf
          
$result5=_Imagesearch("pizza.png",1,$x5,$y5,0)
        If 
$result5=1 Then
            MouseMove
($x5,$y5,0)
            
Sleep(500)
            
MouseClick("left")
            
Sleep(100)
        EndIf
          
$result6=_Imagesearch("exit.png",1,$x6,$y6,0)
        If 
$result6=1 Then
            MouseMove
($x6,$y6,0)
            
Sleep(500)
            
MouseClick("left")
        EndIf
          
$result7=_Imagesearch("exit2.png",1,$x7,$y7,0)
        If 
$result7=1 Then
            MouseMove
($x7,$y7,0)
            
Sleep(500)
            
MouseClick("left")
            EndIf
WEnd
EndFunc


Func Terminate 
()
    Exit 
0
EndFunc


    Func Pause
()
    
$Paused NOT $Paused

    
While $Paused
        sleep
(100)
        
ToolTip('Script is "Paused"',0,0)
    
WEnd
    ToolTip
("")
EndFunc 
01/26/2011 16:56 nelly35000#3
jetzt steht da Line 8
"Error:Subscript used with non-Array variable"
und wie auch vorher funktioniert das auf meinem PC aber nicht auf meinem Laptop.

Woran kann das liegen ?
01/26/2011 17:14 h0fi00#4
vielleicht weil du bei beiden PCs die Imagesearch in den Autoit ordner rein tun musst?
01/26/2011 18:44 nelly35000#5
hab ich.
doch der Fehler kommt beim Laptop immer wenn ich auf F5 klicke.
(bei meinem PC nie)
könnt ihr mir da helfen das problem zu lösen ?
01/26/2011 19:37 puzzlr#6
nimm mal einen anderen key als F5.
01/26/2011 20:13 nelly35000#7
der gleiche fehler kommt nochmal
:(
01/26/2011 20:31 nelly35000#8
ok jetzt klappt es nur das mein laptop nicht meine Bildschirmauflösung von meinem PC anzeigen kann also sieht er die bilder die ich suchen will nicht in der Auflösung kann ich die auflösung meines Laptops höher machen als es eigentlich geht ?
01/27/2011 19:08 h0fi00#9
nein das nicht ich würd halt neue bilder machen und die mit gleichem namen abspeichern und die anderen löschen.