IE.au3 fehler im script

04/05/2013 12:28 YatoDev#1
So hier erstmal das script :
Code:
Global $i = 0
Global $file = "proxies.txt"
Global $timeoutset = 0
Global $error = FileRead("quell.txt")
Global $false = FileRead("false.txt")

HotKeySet("{ESC}","_end")

#include <string.au3>
#include <ie.au3>
#include <file.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("lala", 339, 119, 192, 124)
$Input1 = GUICtrlCreateInput("www.google.de", 24, 24, 177, 21)
$Input2 = GUICtrlCreateInput("drück count proxies", 24, 48, 177, 21)
$Group1 = GUICtrlCreateGroup("Settings", 8, 8, 201, 73)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("Start !", 216, 16, 115, 25)
$Button2 = GUICtrlCreateButton("Count Proxies", 216, 48, 115, 25)
$Label1 = GUICtrlCreateLabel("Done : 0/0", 16, 88, 188, 17)
$Label2 = GUICtrlCreateLabel("Proxies :", 216, 88, 116, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			_end()
		Case $Button1
			_click()
		Case $Button2
			_count()

	EndSwitch
WEnd


Func _click()
	$read = 0
	$stop = false
	$link = GUICtrlRead($Input1)
	$anzahl = GUICtrlRead($Input2)
	$IE = _IECreateEmbedded()
	$BOT = GUICreate("Form1", 800, 800)
	GUICtrlCreateObj($IE, 0, 0, 800, 800)
	GUISetState(@SW_SHOW)
	While 1
		$read = $read + 1
		Global $line = FileReadLine($file,$read)
		If _ProxyIsUp($line) Then
			RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyEnable", "REG_DWORD", "00000001")
			RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyServer", "REG_SZ", $line)
			Sleep(100)
			$Navi = _IENavigate($IE, $link)
			_IELoadWait($IE)
			$HTML = _IEDocReadHTML($IE)
			$error = FileRead("quell.txt")
			$false = FileRead("false.txt")
			If $HTML = $error or $false Then ; timeout quelltext da
				ConsoleWrite("false "&$line&@CRLF)
			Else ; wenn nicht
				Sleep(8000)
				FileWrite("true.txt",$HTML)
				$i = $i + 1
				GUICtrlSetData($Label1,"Done : " &$i& "/" & $anzahl)
				ConsoleWrite("True "&$line&@CRLF)
				If $i = $anzahl Then
					Exit
				EndIf
			EndIf
		Else
			ConsoleWrite("proxie down "&$line&@CRLF)
		EndIf
	WEnd
EndFunc

Func _count()
	$lines = _FileCountLines($file)
	GUICtrlSetData($Label2,"Proxies : "&$Lines)
	GUICtrlSetData($Input2,$lines)
EndFunc

Func _end()
	RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyEnable", "REG_DWORD", "00000000")
	RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyServer", "REG_SZ", "")
	FileClose($file)
	Exit
EndFunc

Func _ProxyIsUp($sProxyIP)
	Local $aIP = StringRegExp($sProxyIP, '(\d+\.\d+\.\d+\.\d+)', 3)
	If Not IsArray($aIP) Then Return SetError(1,0,False)
	Switch Ping($aIP[0], 520)
		Case 0
			Return False
		Case Else
			Return True
	EndSwitch
EndFunc   ;==>_ProxyIsUp
ihr braucht dazu im gleichen ordner noch :
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]

das sind txt dateien eine mit proxies und 2 mit quelltexten drinne die im script überprüft werden sollen

die probleme sind jetzt :
1.)er geht mit proxies nicht auf die seiten (auch nicht google)
2.)
Code:
If $HTML = $error or $false Then ; timeout quelltext da
        ConsoleWrite("false "&$line&@CRLF)
	Else ; wenn nicht
	Sleep(8000)
	FileWrite("true.txt",$HTML)
	$i = $i + 1
	GUICtrlSetData($Label1,"Done : " &$i& "/" & $anzahl)
	ConsoleWrite("True "&$line&@CRLF)
	If $i = $anzahl Then
		Exit
	EndIf
EndIf
das else kommt nie zustande obwohl der quelltext abweicht

was mache ich bloß falsch ? und nicht mekkern das da eine for schleife fehlt bei :
Code:
While 1
	$read = $read + 1
	Global $line = FileReadLine($file,$read)
da es nicht geht musste ich auch noch keine reinbauen
04/05/2013 12:33 Achat#2
[Only registered and activated users can see links. Click Here To Register...]
wait auf 0 setzen

[Only registered and activated users can see links. Click Here To Register...]
Timeout auf 30 Sek. setzen (30000 ms), wenn Rückgabewert 0 dann abbrechen.

MfG
04/05/2013 12:40 YatoDev#3
geht nicht falls ich es denn so richtig gemacht habe :
Code:
Func _click()
	$read = 0
	$stop = false
	$link = GUICtrlRead($Input1)
	$anzahl = GUICtrlRead($Input2)
	$IE = _IECreateEmbedded()
	$BOT = GUICreate("Form1", 800, 800)
	GUICtrlCreateObj($IE, 0, 0, 800, 800)
	GUISetState(@SW_SHOW)
	While 1
		$read = $read + 1
		Global $line = FileReadLine($file,$read)
		If _ProxyIsUp($line) Then
			RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyEnable", "REG_DWORD", "00000001")
			RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyServer", "REG_SZ", $line)
			Sleep(100)
			$Navi = _IENavigate($IE, $link,0)
			$wait = _IELoadWait($IE,0,30000)
			If $wait = 0 Then
				ConsoleWrite("wait = 0 "&@CRLF)
			Else
			$HTML = _IEDocReadHTML($IE)
			$error = FileRead("quell.txt")
			$false = FileRead("false.txt")
			If $HTML = $error or $false Then
				ConsoleWrite("false "&$line&@CRLF)
			Else
				Sleep(8000)
				FileWrite("true.txt",$HTML)
				$i = $i + 1
				GUICtrlSetData($Label1,"Done : " &$i& "/" & $anzahl)
				ConsoleWrite("True "&$line&@CRLF)
				If $i = $anzahl Then
					Exit
				EndIf
			EndIf
		EndIf
		Else
			ConsoleWrite("proxie down "&$line&@CRLF)
		EndIf
	WEnd
EndFunc