also es funktioniert, aber nicht ganz wie es soll, zb die reihenfolge,aber erstmal grobe funktionsweise
Script öffnet ie, dann wird eine Zeile einer Datei einlesen und daraus ein link gemacht, dann wird überprüft ob mein eingeloggt ist(ist aber glaube ich verbesserungswürdig)
dann soll es zu den erzeugten Link navigieren und Eintrag senden das ist kein Problem.
nun sollten noch fehlerausgaben erzeugt werden dies habe ich zt mit func und zt anders gemacht
nuja,
wenn dann _filereadline -1 ausgibt soll auch ne func ausgeführt werden wo man dann 30 sekunden zeit haben soll ESC zu drücken, ansonsten shutdown(weiß nicht wie ich das gescheit in mein vorhanden script bringe deshalb extern
hier das hauptscript
Spoiler anzeigen
#include <file.au3>
#include <GUIConstants.au3>
#include <Date.au3>
#include <array.au3>
#include <misc.au3>
#include <ie.au3>
#include <string.au3>
#include <INet.au3>
$jappylink = "http://www.jappy.de/user/"; Anfang des Links
$jappylinkende = "/GB/neu";Ende des Links
$datei1 = "C:\GBEintrag.txt";Enthält den Gb Eintrag
$Freunde = "C:\liste.txt";Enthält den Pfad zu der verwendetet Freundesliste
$datei2 = FileReadLine($Freunde);Ließt den Link zur Freundeliste ein
$hdatei3 = FileOpen($datei2,0);Öffnet die Datei
$sLogPath = "C:\Fehlerjappy.txt" ;Erstellt eine Logdatei zu Fehlern
$Log = "C:\Logjappy.txt"
If Not FileExists($datei1) Then
MsgBox(0,"","Die Datei "&$datei1&" wurde nicht gefunden")
exit
ElseIf Not FileExists($Freunde) Then
MsgBox(0,"","Die Datei "&$Freunde&" wurde nicht gefunden.")
exit
Else
Dim $array
_FileReadToArray($datei1, $array);Fügt den GB Eintrag in ein array ein
If @error Then
MsgBox(0,"FEHLER","Fehler beim einlesen der Datei")
exit
EndIf
$text2 = _ArrayToString($array,@CR) ;Verwandelt den Array zu einen String zu weiteren Verarbeitung
$text2 = StringTrimLeft ( $text2,2 ) ;schneidet beim text2 links 1 buchstaben weg
If $array[0] > 0 And $array[1] <> "" Then
$hDatei2 = FileOpen($datei2, 0)
$Login = "www.jappy.de"
$oIE = _IECreate($login, 0,1) ;0,1 visible...0,0 invisible
_IELoadWait($oIE); wartet bis der ie vollständig gelandet hat
;--------------------------------------------------------------------------------hier beginnt der haupteil-------------------------------
While $hDatei2
$fertig = "Alle Namen abgearbeitet"
$name = FileReadLine($Hdatei3)
If @error = -1 Then call("ende");---------------------------------------------------------------------------------------------------------------------
$Fehler4 = "Fehler bei Name" & $name
$text = $jappylink&$name&$jappylinkende ;Füge Link Anfang , den eingelsesenen Namen und Link Ende zusammen.
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]sleep(1000);Wartet 1Sekunde
;MsgBox(0, "Example", $text) ; diente nur der link Kontrolle
$oHWND = _IEPropertyGet($oIE, "hwnd");bingt nichts wenn ie unsichtbar
;WinSetState($oHWND, "", @SW_MAXIMIZE);bingt nichts wenn ie unsichtbar
;------------------------ie fehler------------------------
If WinActive("Aktivierung - Jappy.de - Microsoft Internet Explorer") Then
$Fehler2 = "Du bist nicht eingelogt, du hast 20 Sekunden Zeit dich einzuloggen"
MsgBox(0,"Fehler", $Fehler2)
_FileWriteLog( $sLogPath, $fehler2 )
Sleep(2000)
EndIf
If WinActive("Aktivierung - Jappy.de - Microsoft Internet Explorer") Then
$Fehler22 = "Du hast dich leider immernoch nicht eingeloggt, das Script beendet sich jetzt, führe es erneut aus wenn du dich eingeloggt hast"
_FileWriteLog($slogpath,$fehler22)
exit
EndIf
if WinActive("Server nicht gefunden - Microsoft Internet Explorer") Then
$Fehler3 = "Keine aktive Wlan oder Internet verbindung, überprüfe dies "
MsgBox(0,"Fehler",$Fehler3&"Drücke auf ok wenn du das Problem behoben hast, wenn geschehen läuft das Programm weiter")
_FileWriteLog( $sLogPath, $text &"<---->" $fehler3)
endif
;----------------------------------------Hier wird Navigiert---------------------------
_IENavigate($oie,$text)
sleep(2000)
;--------------------------------------------------------------------------------------
$fehler5 = "Fehler beim Form Index holen"
$oForm = _IEFormGetCollection ($oIE, 0);Holt die Bereiche
sleep(1000)
If @error = 3 then Call("Index")
$fehler6 = "Fehler beim finden des Texfeldes"
$oQuery = _IEFormElementGetObjByName($oForm, "text");Findet das TExtfeld
if @error = 7 then call("text")
_IEFormElementSetValue ($oQuery, $text2);fügt text2 ein
_IEFormSubmit ($oForm); Sendet den GB
_FileWriteLog($log,$text);Erstellt eine Log zu den Links die abgearbeitet wurden
If WinActive("Ein Fehler ist aufgetreten! - jappy.de - Microsoft Internet Explorer") Then
$Fehler = "Das Profil ---->"&$text&"<----existiert eventuel nicht"
;MsgBox(0,"Fehler",$Fehler)
_FileWriteLog( $sLogPath, $fehler )
EndIf
Sleep(2000); Warte 2 Sekunden dann schließe IE
WEnd
EndIf
EndIf
;-------------------------------------------Wenn die letzte Zeile erreicht ist------------------------
func ende()
MsgBox(0,"Info", "Alle Namen abgearbitet")
MsgBox(0, "Warnung", "Windows wird in 30 Sekunden heruntergefahren zum Abrechen 'ESC' drücken")
_FileWriteLog($log,$fertig)
run("aus.exe")
sleep(5000)
exit
EndFunc
;-------------------fehler beim index holen--------------
Func index()
;MsgBox(0,"Fehler", $fehler5)
_FileWriteLog( $sLogPath, $fehler5)
EndFunc
;----------------------fehler beim finden des textfeldes
func text()
;MsgBox(0,"Fehler", $fehler6)
_FileWriteLog( $sLogPath, $fehler6)
EndFunc
Script zum shutdown
(hier aus dem Board)
[autoit]
HotKeySet("{ESC}", "Terminate")
If _countDown("00:00:20") Then Shutdown(9) ; SS:MM:SS
Func _countDown($countdown)
$begin = TimerInit()
Local $string = ""
While 1
$start = Round(TimerDiff($begin) / 1000)
$countUp = StringFormat("%.02d" & ":" & "%.02d" & ":" & "%.02d", _
Mod($start / 3600, 24), Mod(($start / 60), 60), Mod($start, 60))
$sec = _DateDiff('s', "2006/01/01 " & $countUp, "2006/01/01 " & $countdown)
If $sec = 0 Then Return 1
$string = StringFormat("%.02d" & ":" & "%.02d" & ":" & "%.02d", _
Mod($sec / 3600, 24), Mod(($sec / 60), 60), Mod($sec, 60))
ToolTip($string)
Sleep(100)
WEnd
EndFunc ;==>_countDown
Func Terminate()
Exit 0
EndFunc
nochmal zu der reihefolge, warum navigiert der erst und überprüft erst nacher ob mein eingelogt ist? im script ist diesaber genau andersrum
und kann man die fehler die anhand des titels des ie erkannnt werden auch anders erkennen?
grüße