Ich wäre dafür weil Firefox ein häufig genutzter Browser ist und die Automatisierung HAMMER ist. Die Funktionen der IE.au3 sind ja auch in der deutschen Hilfe. Und ich finde die FF.au3 deutlich besser als die IE.au3
Beiträge von Molaynox
-
-
Wie ich schon sagte Mozilla Firefox ist für das Autoit Window Info Tool nur ein Fenster mit 2 Instanzen ohne irgendwelche Controls :wacko: . Deshalb wird mit Befehlen wie ControlSetText, ControlSend nichts möglich sein. Ich denke mal die einzige Möglichkeit die noch bleibt ist ein simples fehleranfälliges (z.B. durch verschiedene Auflösungen, andere Fenstergröße) MouseClick in das Input mit anschließendem Send und MouseClick auf den Button.
Bin ich mit
[autoit]WinGetHandle
[/autoit]auf dem richtigen Weg?
Jedenfalls hilft dir das wenig beim eintragen des Passworts in das Input. -
Hier noch eine Möglichkeit im Windows 7 Stile mit SendMessage. (Leider nur diese 3 Farben)
[autoit]
[/autoit][autoit][/autoit][autoit]
#include <SendMessage.au3>
#include <ProgressConstants.au3>Global Const $PBST_NORMAL = 0x0001 ; Grün
[/autoit][autoit][/autoit][autoit][/autoit][autoit]
Global Const $PBST_ERROR = 0x0002 ; Rot
Global Const $PBST_PAUSED = 0x0003 ; Gelb$hGui = GUICreate("Beispiel", 572, 490, -1, -1)
[/autoit][autoit][/autoit][autoit]
$hProgressbar = GUICtrlCreateProgress(8, 437, 553, 33)
GUICtrlSetData($hProgressbar, 75)
GUISetState(@SW_SHOW)Sleep(5000)
[/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]
_GUICtrlProgress_SetData($hProgressbar, 50, $PBST_ERROR)
Sleep(5000)
_GUICtrlProgress_SetData($hProgressbar, 25, $PBST_PAUSED)
Sleep(5000)
_GUICtrlProgress_SetData($hProgressbar, 100, $PBST_NORMAL)
Sleep(2000)Func __GUICtrlProgress_SetState($iProgress, $iState)
[/autoit][autoit][/autoit][autoit]
Switch IsHWnd($iProgress)
Case True
Return _SendMessage($iProgress, $PBM_SETSTATE, $iState, 0)
Case Else
Return GUICtrlSendMsg($iProgress, $PBM_SETSTATE, $iState, 0)
EndSwitch
EndFunc ;==>__GUICtrlProgress_SetStateFunc _GUICtrlProgress_SetData($iProgress, $iData, $PBST)
[/autoit]
__GUICtrlProgress_SetState($iProgress, $PBST_NORMAL)
GUICtrlSetData($iProgress, $iData)
__GUICtrlProgress_SetState($iProgress, $PBST)
EndFunc ;==>_GUICtrlProgress_SetData -
Hi ich habe mich in letzter Zeit viel mit der FF.au3 beschäftigt und habe nun ein Script entwickelt was Proxys auf ihr Funktion testen und dann die Proxy Einstellungen in Firefox ändert. Wenn es beendet wird löscht es Cache und Verlauf.
*Infos*
Beschreibung:
Mit BlackEyes BeAnonym surfen sie in Mozilla Firefox automatisch über Proxy Server. Damit sie völlig unproblematisch und ungestört surfen können werden die Proxy Server vorher auf ihre Funktionalität geprüft. Sollte der Proxy Server nicht mehr funktionieren wird er spätestens nach 20 Sekunden durch einen anderen ersetzt. Bevor sie das Programm beenden oder ihren PC herunterfahren löscht BlackEyes BeAnonym automatisch ihren Verlauf und ihren Cache.
Voraussetzungen:
BlackEyes BeAnonym leitet nur Ihren Datenverkehr von Mozilla Firefox über einen Proxy Server um. In anderen Programmen wird Ihr Datenverkehr nicht über einen Proxy Server umgeleitet. Benötigt sind Mozilla Firefox und das kostenlose Add-On MozRepl, welches falls es nicht vorhanden ist automatisch installiert wird.
Hinweise:
BlackEyes BeAnonym funktioniert nur wenn das Add-On MozRepl installiert und zu ihrer Mozilla Firefox Version kompatibel ist. Die Anonymität hängt von dem jeweiligen Proxy Server ab. Eigen Proxy Server können hinzugefügt werden in dem Sie den Ordner öffnen in dem Sie BlackEyes BeAnonym installiert haben und die Proxy.txt öffnen. Dort können sie nun den Proxy einfügen im Format
[autoit]$IP & ":" & $Port
[/autoit]. IP müssen sie dann durch die jeweilige IP des Proxy Servers ergänzen und Port durch den Port der benutzt werden soll. BlackEyes BeAnonym arbeitet immer im Hintergrund so das sie ungestört surfen können. Falls das BlackEyes BeAnonym läuft sehen sie unten rechts in der Taskleiste das BlackEyes BeAnonym Icon. Falls sie BlackEyes BeAnonym schon installiert haben und es erneut installieren wollen, müssen sie zuerst den Prozess BlackEyesBeAnonym.exe beenden, weil die Installation sonst fehlschlägt.
Unterstützte Betriebssysteme: Windows XP, Windows Server 2003/2008, Windows Vista , Windows 7
64 Bit kompatibel.
Dateigröße: 800 KB
Source
[autoit]#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
[/autoit] [autoit][/autoit] [autoit]
#AutoIt3Wrapper_icon=..\..\Desktop\BlackEyes\proxy.ico
#AutoIt3Wrapper_outfile=..\..\Desktop\BlackEyes\BeAnonym\BlackEyesBeAnonym.exe
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_UseX64=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#cs
Author: Molaynox
Homepage: http://www.black-eyes-soft.tk
E-Mail: [email='black.eyes.soft@gmx.de'][/email]
Date: 26.12.2010 21:38
#ce#include <FF.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <FFEx.au3>
#include <File.au3>
;~ #include <Array.au3>Opt("TrayAutoPause", 0)
[/autoit] [autoit][/autoit] [autoit]
Opt("TrayMenuMode", 3)
Opt("TrayOnEventMode", 1)TrayCreateItem("Exit")
[/autoit] [autoit][/autoit] [autoit]
TrayItemSetOnEvent(-1, "_Exit")
TrayCreateItem("About")
TrayItemSetOnEvent(-1, "_About")If RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Current Version\Run", "SetProxy") <> @ScriptFullPath Then
[/autoit] [autoit][/autoit] [autoit]
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Current Version\Run", "SetProxy", @ScriptFullPath)
EndIfGlobal $aProxy, $iExit = 0
[/autoit] [autoit][/autoit] [autoit]OnAutoItExitRegister("_Exit")
[/autoit] [autoit][/autoit] [autoit]
_FF_MozRepl_Detect()If Not FileExists(@ScriptDir & "\Proxy.txt") Then
[/autoit] [autoit][/autoit] [autoit]
MsgBox(48, "ERROR", "Cannot find Proxy.txt in Script Directory!" & @CRLF & _
"Please move the Proxy.txt in this Directory: " & @ScriptDir)
Exit
EndIfTCPStartup()
[/autoit] [autoit][/autoit] [autoit]
$hFile = FileOpen(@ScriptDir & "\Proxy.txt")
For $i = 1 To _FileCountLines(@ScriptDir & "\Proxy.txt")
$sString = FileReadLine($hFile, $i)
Global $aProxy = StringSplit($sString, ":", 2)
$aProxy[0] = String(StringStripCR(StringStripWS($aProxy[0], 8)))
$aProxy[1] = Int(StringStripCR(StringStripWS($aProxy[1], 8)))
ConsoleWrite(@CRLF & "Test This Proxy:" & @CRLF & "IP: " & $aProxy[0] & @CRLF & "Port: " & $aProxy[1] & @CRLF)
$MainSocket = TCPConnect($aProxy[0], $aProxy[1])
If $MainSocket = -1 Then
_FileWriteToLine(@ScriptDir & "\Proxy.txt", $i, "", 1)
ConsoleWrite("DELETE " & $aProxy[0] & ":" & $aProxy[1] & @CRLF & "This Proxy doesn't work!" & @CRLF)
Else
ConsoleWrite("SUCCESFUL " & $aProxy[0] & ":" & $aProxy[1] & @CRLF & "This Proxy work!" & @CRLF)
ExitLoop
EndIf
NextDim $aProxyLast[2]
[/autoit] [autoit][/autoit] [autoit]
$aProxyLast[0] = "127.0.0.5"
$aProxyLast[1] = 80
$iCleaned = 0AdlibRegister("_CheckProxy", 20000)
[/autoit] [autoit][/autoit] [autoit]While Sleep(5000)
[/autoit] [autoit][/autoit] [autoit]
If ProcessExists("firefox.exe") And _FFIsConnected() And $aProxy[0] <> $aProxyLast[0] Then
If Not IsInt($aProxy[1]) Then
MsgBox(48, "ERROR", "Integer Error")
Exit
EndIf
_FFPrefSet("network.proxy.type", 1)
_FFPrefSet("network.proxy.http", $aProxy[0])
_FFPrefSet("network.proxy.http_port", $aProxy[1])
_FFPrefSet("network.proxy.socks", $aProxy[0])
_FFPrefSet("network.proxy.socks_port", $aProxy[1])
_FFPrefSet("network.proxy.socks_version", 4)
If _FFPrefGet("network.proxy.type") <> 1 And _FFPrefGet("network.proxy.http") <> $aProxy[0] And _
_FFPrefGet("network.proxy.socks") <> $aProxy[0] And _FFPrefGet("network.proxy.http_port") <> $aProxy[1] And _
_FFPrefGet("network.proxy.socks_port") <> $aProxy[1] Then
MsgBox(48, "ERROR", "ERROR in _FFPrefSet()")
Exit
EndIf
MsgBox(64, "", "Neuer Proxy:" & @CRLF & "IP: " & $aProxy[0] & @CRLF & "Port: " & $aProxy[1], 10000)
ConsoleWrite(@CRLF & "Neuer Proxy:" & @CRLF & "IP: " & $aProxy[0] & @CRLF & "Port: " & $aProxy[1] & @CRLF)
$aProxyLast[0] = $aProxy[0]
$aProxyLast[1] = $aProxy[1]
ElseIf ProcessExists("firefox.exe") And Not _FFIsConnected() Then
If Not _FFConnect() Then
MsgBox(16, "FATAL ERROR", "_FFConnect() Error! Please Start MozRepl Addon for FireFox before you start this Tool")
EndIf
EndIf
WEndFunc _Exit()
[/autoit] [autoit][/autoit] [autoit]
If Not $iExit Then
$iExit = 1
_FFStart("about:blank", "default", 1, True)
If ProcessExists("firefox.exe") And _FFIsConnected() Then
_FFPrefReset("network.proxy.type")
_FFPrefReset("network.proxy.http")
_FFPrefReset("network.proxy.http_port")
_FFPrefReset("network.proxy.socks")
_FFPrefReset("network.proxy.socks_port")
_FFPrefReset("network.proxy.socks_version")
_FF_EmptyHistory()
_FF_EmptyCache()
MsgBox(64, "Info", "Verlauf und Cache wurden gelöscht.")
EndIf
_FFQuit()
Exit
EndIf
EndFunc ;==>_ExitFunc _CheckProxy()
[/autoit] [autoit][/autoit] [autoit]
For $i = 1 To _FileCountLines(@ScriptDir & "\Proxy.txt")
$sString = FileReadLine($hFile, $i)
Global $aProxy = StringSplit($sString, ":", 2)
$aProxy[0] = String(StringStripCR(StringStripWS($aProxy[0], 8)))
$aProxy[1] = Int(StringStripCR(StringStripWS($aProxy[1], 8)))
$MainSocket = TCPConnect($aProxy[0], $aProxy[1])
If $MainSocket = -1 Then
_FileWriteToLine(@ScriptDir & "\Proxy.txt", $i, "", 1)
Else
ExitLoop
EndIf
Next
EndFunc ;==>_CheckProxyFunc _About()
[/autoit]
MsgBox(64, "About", "Programmiert von: Black-Eyes-Soft" & @CRLF & "Support E-Mail: black.eyes.soft@gmx.de" & @CRLF & "Homepage: http://www.black-eyes-soft.tk")
EndFuncHätte gerne ein bisschen Feedback oder Tipps was man noch verbessern könnte.
-
Ich finde man könnte die Steuerung für PC nicht besser machen. (Laptop hin und herschaukeln )
-
super spiel kenn zwar das original nicht aber ist lustig zum spielen.
Im Orginal sind die Sprünge ein bisschen schneller, aber ich traue Ubuntu & allen anderen zu das sie das auch noch schaffen. -
Keine Ahnung was Proxy in diesem Falle heißt. Auf jeden Fall habe ich einen Verzeichnisschutz für einen kleinen Teil meiner Webseite angelegt und wenn ich den ansurfe, meldet sich dieses Popup mit "Authentifizierung erforderlich" und dem entsprechenden Input-Feld.
Also per .htaccess?
Ich schätze mal, dass das mit den Control Befehlen dann nicht geht. Weil Mozilla Firefox für das Autoit Window Info Tool irgendwie nur ein Fenster ist ohne irgendwelche Controls, wodurch das ansteuern per Control Befehl nicht möglich ist. Ich habe allerdings noch nichts in der FF.au3 gefunden was die .htaccess ansteuern kann. Wenn es wirklich nichts gibt wird MouseClick und Send die einzige Möglichkeit bleiben. -
Passiert mir auch manchmal und dann brauch ich ne Stunde um herauszufinden das ich nur was vergessen hab.
-
Ja und daran liegt es evtl..
Am Anfang dachte ich, dass wäre ein normales schickes Popup, aber daran zweifle ich jetzt. Denn das Verhalten ist eher wie das vom Einstellungen-Popup oder wie immer auch dieser Fenstertyp heißen mag.
Das was mich aber stutzig macht oder verwirrt ist, dass ich halt eine Internetseite ansteuere und dann dieser Fenstertyp eine Eingabeaufforderung will.
Dann wird das mit der FF.au3 warscheinlich nichts mehr. Oder ist es eine Javascript prompt Box?
Wenn es wirklich wie ein Einstellungs Menü ist dann wird es schwer.
Das Autoit Info Tool hat dir ja das gesagt: Class:MozillaDialogClass und das würde bedeuten das es wirklich wie ein Einstellungs Menü reagiert. Und das wiederrum würde bedeuten das sowohl die Control Funktionen als auch die FF.au3 Funktion nichts nützen werden. :wacko:Zitat von Poster63Was meinen die dann für eine Class? Eine css-class?
Das was im Quellcode hinter class= steht. Es muss aber keine class existieren soweit ich weis. -
Ich zitiere mich mal selbst.
Das Autoit Window Info Tool bringt dir da leider nichts. Du kannst aber dazu das Addon FireBug benutzen. Mit dem Kannst du die id oder den Namen blitzschnell herausfinden.
Wie gesagt die Class in dem Window Info Tool hat mit der Class die in _FFSetValue verwendet werden kann nichts zu tun.Zitat von Poster63FireBug habe ich, aber sobald das Popup aufmacht, komme ich an den FireBug nicht ran.
Wie hast du es mit FireBug versucht.
Du musst mit der rechten Maustaste auf den Button klicken und dann auf Element untersuchen.
Dabei öffnet sich unten im Firefox eine Konsole mit der Stelle des Quelltextes wo der Button steht.z.B. Der Absenden Button beim Neuen Beitrag
Da siehst du dann z.B. tabindex, value, und name oder id.Zitat von Poster63Und so weit ich das Beispiel auf
http://german.documentation.ff-au3.thors%e2%80%a6_FFSetValue.php
verstanden habe, muss ich doch die Class an die zweite Stelle schreiben oder?
Ja das stimmt.Jetzt habe ich noch eine Frage: Handelt es sich bei dem Popup um eine Internet-Seite oder um ein Popup wie z.B. das von den Einstellungen?
-
Wieso deklarierst du $NameUpdDatei erst als Array und dann als variable?
[autoit]
Der Error entsteht wegen dieser Zeile$NameUpdDatei=$NameUpdDatei[0]
[/autoit](Zeile 15)
So geht es bei mir:Spoiler anzeigen
[autoit]#include <INet.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <String.au3>
#include <array.au3>Global $sNewestVersion, $sInstallVersion, $PF = @HomeDrive, $NameUpdDatei
[/autoit] [autoit][/autoit] [autoit]FF_Upd()
[/autoit] [autoit][/autoit] [autoit]Func FF_Upd(); Name der Update-Datei
[/autoit]
$sFF_Upd_Source = BinaryToString(InetRead('http://releases.mozilla.org/pub/mozilla.org/firefox/releases/3.6.13/update/win32/de/', 1))
MsgBox(1, "Webseite", $sFF_Upd_Source)
Global $NameUpdDatei = _StringBetween($sFF_Upd_Source, '<img src="/icons/unknown.gif" alt="[ ]"> <a href="', '">firefox')
MsgBox(1, "Name", $NameUpdDatei[0])
EndFunc ;==>FF_Upd -
Ich weis zwar leider nicht wie man das genau machen müsste aber die einzigen funktionen die dafür aus der FF.au3 infrage kommen sind denke ich mal _FFPrefSet oder _FFCmd.
-
Nachdem du das ausgeführt hast, war da z.b. so wie es seien sollte der Verlauf gelöscht?
Führ doch das hier mal aus. (FireFox muss schon gestartet sein)Testscript
[autoit]#include <FF.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <FFEx.au3>_FFConnect()
[/autoit]
_FF_EmptyHistory()
_FFDisConnect()
Was steht dann bei dir in der Konsole?
Bei mir steht das hier: (Und der Verlauf in Firefox ist leer, die Löschung des Verlaufs war also erfolgreich.)SciTE Konsolen Ausgabe
Code
Alles anzeigen_FFConnect: OS: WIN_7 WIN32_NT 7600 _FFConnect: AutoIt: 3.3.6.1 _FFConnect: FF.au3: 0.6.0.1b-3 _FFConnect: IP: 127.0.0.1 _FFConnect: Port: 4242 _FFConnect: Delay: 2ms _FFConnect: Socket: 584 _FFConnect: Browser: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 __FFSendJavaScripts: Sending functions to FireFox . __FFWaitForRepl ==> MozRepl Exception: !!! [Exception... "Component is not available" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" ......... done __FFSend: try{Components.classes['@mozilla.org/browser/nav-history-service;1'].getService(Components.interfaces.nsIBrowserHistory).removeAllPages();}catch(e){'_FFCmd_Err';}; __FFRecv: __FFSend: repl.quit() _FFDisConnect: disconnected
Bei mir kommen diese Errors zwar auch immer, das script funktioniert jedoch. -
Schau dir das hier nochmal an: http://german.documentation.ff-au3.thorsten-willert.de/ff_functions/_FFSetValue.php
[autoit]
Du musst entweder die id oder den name des inputs herausfinden aus dem Quelltext.
z.B. so_FFSetValue("My_Password", "pass", "id")
[/autoit]Edit: Das Autoit Window Info Tool bringt dir da leider nichts. Du kannst aber dazu das Addon FireBug benutzen. Mit dem Kannst du die id oder den Namen blitzschnell herausfinden.
-
mit der FF.au3 und einer Homepage wie z.b. Wieistmeineip.de sollte das möglich sein.
(_FFPrefSet usw.)
Hier ein kleines Beispiel zu _FFPrefSet() um die Proxy Einstellungen zu ändern.Spoiler anzeigen
[autoit]_FFPrefSet("network.proxy.type", 1) ; Manuelle Proxy Einstellungen
[/autoit]
_FFPrefSet("network.proxy.http", "156.17.10.51") ; Http IP
_FFPrefSet("network.proxy.http_port", 3124) ; Http Port
_FFPrefSet("network.proxy.socks", "156.17.10.51") ; Socks IP
_FFPrefSet("network.proxy.socks_port", 3124) ; Socks Port
_FFPrefSet("network.proxy.socks_version", 4) ; Socks Version
_FFOpenURL("http://www.wieistmeineip.de/")Und dann halt den Quellcode auslesen und überprüfen ob die IP die ist die eingestellt wurde.
Bin selber gerade am programmieren eines Tools was automatisch die Proxy Einstellungen in Firefox ändert anhand einer *.txt Datei.
Wird demnächst auf meiner Homepage und vllt. auch hier als Open Source erscheinen. (Bis jetzt nur noch ein paar kleine Bugs, z.B das Überprüfen der Proxys was ich per _FFloadWait Timeout bis jetzt durchgesetzt habe, was ich allerdings zu lahm finde.) -
Hallo Kyokoshin,
ich kann die von dir verwendeten Funktionen weder in der Dokumentation ( http://german.documentation.ff-au3.thorsten-willert.de/ ) noch in der FF.au3 finden,
Auf der Homepage sind die Funktionen in der FFEx.au3
-
Hast du es mal versucht zu kompilieren(vllt. mit CUI damit du das was in die Console geschrieben wird siehst) und dann auszuführen?
Welches OS?
x64 oder x86? -
Ich habe auch mal für weiteren XP Support gestimmt weil Windows XP einfach stabil und schnell läuft, sehr übersichtlich ist und einfach zu bedienen ist, und deswegen auch noch eine Zeit lang ein häufig genutztes Betriebssystem bleiben wird.
-
-
Ich glaube er meinte eher ein externes Popup also keins in seinem Script.
[autoit]
Um Text einzufügen:ControlSetText
[/autoit]
;oder
ControlSendauf Button klicken:
[autoit]ControlClick
[/autoit]Die ID der Elemente kannst du mit dem AutoIt Window Info Tool herausfinden. (in SciTE im Menü Tools==>Au3Info)
Ich hoffe ich konnte dir damit helfen.