[EDIT] zu langsam
Beiträge von Stilgar
-
-
Und evtl. eine Verzögerung in die Schleife einbauen. Momentan wird ca. alle 15 ms die URL abgefragt
-
Hier ist ein Update einiger Console-Commando-Files:
Die Pfade zu den Programmdateien werden jetzt automatisch eingetragen und die x64 und Console - Option habe ich ergänzt.
Changelog:
http://thorsten-willert.de/Themen/jEdit/j…s/changelog.txtGrüße
Stilgar -
Hier ist eine (Hilfs)Funktion, die die Eigenschaften eines Formulars und dessen Elementen in einem Array zurückgibt:
Spoiler anzeigen
[autoit]#region Includes
[/autoit] [autoit][/autoit] [autoit]
#include <Array.au3>
#include <FF.au3>
#endregion Includes$Socket = _FFStart("http://autoit.de/index.php?form=UserLogin")
[/autoit] [autoit][/autoit] [autoit]_FFSetGet($Socket,"")
[/autoit] [autoit][/autoit] [autoit]$form = _FFFormInspect($Socket)
[/autoit] [autoit][/autoit] [autoit]_ArrayDisplay($form)
[/autoit] [autoit][/autoit] [autoit]_FFQuit($Socket)
[/autoit] [autoit][/autoit] [autoit];===============================================================================
[/autoit] [autoit][/autoit] [autoit]Func _FFFormInspect(ByRef $Socket, $iForm=0)
[/autoit] [autoit][/autoit] [autoit]Local $frm = ".forms[" & $iForm & "]"
[/autoit] [autoit][/autoit] [autoit]
Local $elm = ""
Local $elements = _FFSetGet($Socket, $frm & ".length")+3
Local $element[$elements][6]$element[0][0] = "forms[" & $iForm & "]:"
[/autoit] [autoit][/autoit] [autoit]
$element[0][1] = "Name:"
$element[1][1] = _FFSetGet($Socket, $frm & ".name")
$element[0][2] = "ID:"
$element[1][2] = _FFSetGet($Socket, $frm & ".id")
$element[0][3] = "Action:"
$element[1][3] = _FFSetGet($Socket, $frm & ".action")
$element[0][4] = "Method:"
$element[1][4] = _FFSetGet($Socket, $frm & ".method")
$element[2][1] = "Type:"
$element[2][2] = "Name:"
$element[2][3] = "ID:"
$element[2][4] = "Value:"
$element[2][5] = "Checked:"For $i = 3 to $elements-1
[/autoit] [autoit][/autoit] [autoit]
$elm = "elements[" & $i -3 & "]"
$frm = ".forms[" & $iForm & "]." & $elm
$element[$i][0] = $elm
$element[$i][1] = _FFSetGet($Socket, $frm & ".type")
$element[$i][2] = _FFSetGet($Socket, $frm & ".name")
$element[$i][3] = _FFSetGet($Socket, $frm & ".id")
$element[$i][4] = _FFSetGet($Socket, $frm & ".value")
$element[$i][5] = _FFSetGet($Socket, $frm & ".checked")
NextReturn $element
[/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit]Ausgabe per _ArrayDisplay:
[Blockierte Grafik: http://www.thorsten-willert.de/Themen/AutoIt-FF.au3/Testversion/_FFFormInspect_ArrayDisplay.png]Damit lassen sich Formulare wesentlicher einfacher ausfüllen, als den HTML-Quelltext zu durchforsten.
Was meint Ihr dazu?
Grüße
Stilgar -
Neue Version V0.2.9.2b:
http://www.thorsten-willert.de/Themen/AutoIt-FF.au3/FF.au3/V0.2.9.2 ( 30. Mai 2008 )
* NEU: _FFClick: (siehe _FFSetGet V0.2.9.1)
* Korrektur: _FFAction($Socket,"presentationmode","false")
* Korrektur: _FFTabLengthGrüße
Stilgar -
Jetzt weis ich warum das nicht funktionieren kann.
Dummerweise hat der Button den Namen "submit" bekommen. D.h. es wurde folgendes Objekt erzeugt:content.document.forms[0].submit
und die Methode zum abschicken heißt normalerweise:
content.document.forms[0].submit()
der etwas dümmlich gewählte Name "überschreibt" also die Methode und schon läßt sich das Formular per JavaScript nicht mehr "normal" absenden
Beschwerden bitte an "webmaster von Deutschlandspiel.de"
Grüße
Stilgar -
Komisch, liegt vielleicht an deiner Installation, oder hat noch jemand dieses Problem?
-
Neue Version V0.2.9.1:
http://www.thorsten-willert.de/Themen/AutoIt-FF.au3/FF.au3/Änderungen: V0.2.9.1 ( 27. Mai 2008 )
* NEU: _FFSetGet: Anstatt:
_FFSetGet($Socket,"content.document.forms[0].elements[2].click()")
kann nun als Abkürzung:
_FFSetGet($Socket,".forms[0].elements[2].click()")
eingegeben werden, wichtig ist der führende Punkt dabei.* Korrektur: Fehler in __FFSend behoben. Es wurde nur das erste Element des übergebenen Array gesendet, damit funktionieren nun auch viele andere Sachen wie _FFClickLink usw. wieder, da beim Verbinden nicht alle JavaScript Funktionen an FF gesendet wurden.
Dokumentation angepaßt:
http://thorsten-willert.de/Themen/AutoIt-…rman/index.htmlGrüße
Stilgar -
Dürfte nicht fehlen, die Version wird auch aus der Registry gelesen, sollte hier stehen:
"HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox\CurrentVersion"
und das ist dann z.B. "2.0.0.14 (de)"
das dann zu:
"HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox\2.0.0.14 (de)"
zusammengesetzt wird.
Steht bei dir die Version nicht in
"HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox\CurrentVersion"?Grüße
Stilgar -
@ Deepred:
Läßt sich FireFox über "Ausführen ..." als FireFox.exe starten?
Wo ist FireFox installiert?
Wie sieht das eigentliche Programm aus?Grüße
Stilgar -
Erst mal _FFLoadWait kann weg fallen, das übernimmt _FFStart schon ...
Theoretisch sollte es folgendermaßen funktionieren:
[autoit]
[/autoit][autoit][/autoit][autoit]
#include <FF.au3>$Socket = _FFStart("http://dasdeutschlandspiel.de/")
[/autoit]
_FFSetValueByName($Socket, "player", "DeinSpielername")
_FFSetValueByName($Socket, "password", "DeinPasswort")
_FFFormSubmit($Socket)Habe aber gerade festgestellt, daß FireFox sich plötzlich über submit() für Forms beschwert - muß ich nochmal überarbeiten ...
[EDIT]
[autoit]
Statt _FFFormSubmit funktioniert in diesem Fall:_FFSetGet($Socket,"content.document.forms[0].elements[2].click()")
[/autoit]
aber frag mich nicht warum[EDIT2]
[autoit]
Komisch _FFFormSubmit funktioniert auf anderen Seiten einwandfrei ... da werde ich mich mal heute Abend eingehender mit dem DOM-Inspektor "vergnügen", also das Script sieht dann am Ende so aus:
[/autoit][autoit][/autoit][autoit]
#include <FF.au3>$Socket = _FFStart("http://dasdeutschlandspiel.de/")
[/autoit]
_FFSetValueByName($Socket, "player", "DeinSpielername")
_FFSetValueByName($Socket, "password", "DeinPasswort")
_FFSetGet($Socket,"content.document.forms[0].elements[2].click()")Grüße
Stilgar -
Neue Bastelversion V0.2.9.0 ( 27. Mai 2008 ) (wird sich die Woche noch öfters ändern):
http://www.thorsten-willert.de/Themen/AutoIt-FF.au3/Testversion/
Änderungen:
V0.2.9.0 ( 27. Mai 2008 )
* Geandert: _FFSetGet: TimeOut als neuer Parameter !! Parameter Reihenfolge dadurch geaendert!!
Dadurch werden die Reaktionszeiten, der Funktionen, bei Fehlern erheblich kürzer.
* Geandert: _FFConnect gibt die Zeit fuer $_FF_CON_DELAY in der Konsole aus.
* NEU: FireFTP als Shortcut fuer chrome: oeffnet FireFTP z.B.:
_FFAction($Socket,"chrome","fireftp") oder _FFOpenURL($Socket,"chrome:fireftp")Grüße
Stilgar -
wieso müssen "die" ständig sooo viel ändern?
Hier ein Update auf AutoIt v3.2.12.0:
http://thorsten-willert.de/Themen/jEdit/j…Edit4AutoIt.zipChangelog:
http://thorsten-willert.de/Themen/jEdit/j…s/changelog.txtViel Spaß damit!
Stilgar -
@progandy:
Danke für den Hinweis. Werde ich mal so (oder ähnlich) übernehmen. -
Im Laufe der Woche wird es eine überarbeitete Version der FF.au3 geben.
Grüße
Stilgar -
Bin leider noch nicht dazu gekommen die Doku zu übersetzen (außer dem Inhaltsverzeichnis)
Achtung! Die Links auf meiner Homepage haben sich geändert (siehe Anfang des Themas).
Grüße
Stilgar -
Nur nicht hetzen
Ich werde im laufe der Woche eine überarbeitete Version herausbringen. Mit den Frames muß ich mir noch eine Lösung ausdenken.
Grüße
Stilgar -
Den "Function Wizzard" habe ich nun mal offiziell zu den Macros eingefügt:
http://thorsten-willert.de/Software/jEdit/index.php#macros[EDIT]
Das Ganze gibt es nun nur noch als einzelnes Archiv.
Bitte einmal komplett neu installieren, da ich die Schreibweise des Edit-Modes angepaßt habe (komplett klein) und somit ältere Macros und Commando-Files nicht mehr funktionieren!
Die Plugins-sind nun nicht mehr im Archiv enthalten, da über den Plugin-Manager jeweils die aktuellsten Versionen geholt werden können.Grüße
Stilgar -
Ich werde mal versuchen dieses Wochenende die Dokumentation zu übersetzen.
Falls noch jemand dafür Zeit hätte, wäre das schön und derjenige möchte mich dann doch bitte per ICQ kontaktieren, damit wir das etwas koordinieren können.Grüße
Stilgar -
Hier kommt die erste Testversion eines Macros zum schnelleren "ausüllen" einer Funktionsbeschreibung:
[Blockierte Grafik: http://thorsten-willert.de/Themen/jEdit/j…ion_wizzard.png]
ergibt im Quelltext z.B.: folgendes:
[autoit]; #INTERNAL_USE_ONLY# ==========================================================
[/autoit]
; Name ..........: __Test
; Description ...: bla laber
; Syntax ........: __Test(ByRef $iInt, $vVar[, $sText="test"[, $sSonstiges="Irgendwas"]])
; Parameter(s): .:
; $iInt -
; $vVar -
; $sText - Optional:
; $sSonstiges - Optional:
; Return Value ..: Success - 1
; Failure - 0
; @ERROR -
; Author(s) .....: Thorsten Willert
; Modified ......: Fri May 09 14:30:57 CEST 2008
; Version .......: 1.0
; ==============================================================================
Func __Test(ByRef $iInt, $vVar, $sText="test", $sSonstiges="Irgendwas")
Return
EndFunc ;==> __Testspäter soll es auch die Beschreibung aus dem Quellcode auslesen können, die Einstellungen speichern können evtl. kommen noch ein mehr einfache Überprüfungen des Funktionsnamen und der Parameter dazu.
Parameter werden jetzt schon zumindest um ein fehlendes $-Zeichen ergänzt.
Die Anzahl der "=" -Zeichen ist von der Einstellung des "Warp margin" abhängig.
Download:
http://www.thorsten-willert.de//Software/jEdi…ion_Wizzard.bshGrüße Stilgar