Probleme mit AutoIt und FireFox

  • Hallo

    ich kriege keine Verbindung mit FireFox. Auf jedenfall passiert nichts.

    [autoit]

    #RequireAdmin

    [/autoit][autoit][/autoit][autoit]

    #include <FF.au3>

    [/autoit][autoit][/autoit][autoit]

    _FFConnect("http://www.google.de")

    [/autoit]

    Das geht nicht. Es passiert einfach garnichts.

    MozRepl ist installiert und aktiviert.
    FF.au3 ist auch im Include Ordner von AutoIt vorhanden.

    Ich bitte um Hilfe.

    Mfg Creylon

    3 Mal editiert, zuletzt von Creylon (12. November 2010 um 14:30)

  • Code
    >"C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "C:\Users\User\Desktop\Test.au3" /autoit3dir "C:\Program Files (x86)\AutoIt3" /UserParams	
    +>21:55:16 Starting AutoIt3Wrapper v.2.0.1.24	Environment(Language:0407  Keyboard:00000407  OS:WIN_7/  CPU:X64 OS:X64)
    >Running AU3Check (1.54.19.0)  from:C:\Program Files (x86)\AutoIt3
    +>21:55:17 AU3Check ended.rc:0
    >Running:(3.3.6.1):C:\Program Files (x86)\AutoIt3\autoit3_x64.exe "C:\Users\User\Desktop\Test.au3"	
    +>21:55:18 AutoIT3.exe ended.rc:0
    >Exit code: 0	Time: 2.758
  • Ich denke du bist als normaler Benutzer angemeldet und nicht als Admin richtig?
    Dann hast du das Addon in FireFox bestimmt auch für den normalen Benutzer installiert und nicht für den Admin..
    Jetzt rufst du das Script aber als Admin auf -> Kein Addon vorhanden!

    Aber wieso da keine Fehlermeldungen, weil keine Verbindung zu MozRepl hergestellt werden kann finde ich mysteriös..

    Bitte Testweise mal das RequireAdmin auskommentieren und erneut den Scitekonsoleninhalt posten ;)

  • Was sollte bei deinem Script auch passieren? Haste dir mal die Hilfedatei zur FF.au3 angeschaut?

    Da die Funktion _FFConnect keine URL als Parameter erlaubt, bzw diese als den Server auf dem MozRepl laufen soll ansieht wird er sich auch nicht verbinden.
    Um eine URL zu öffnen muss _FFOpenURL benutzt werden.

    Also so z.B.:

    [autoit]


    #include <FF.au3>

    [/autoit][autoit][/autoit][autoit]

    _FFConnect()
    _FFOpenURL("http://www.google.de")

    [/autoit]

    Das funktioniert aber auch nur dann, wenn FF bereits gestartet wurde. Wenn nicht musst du statt _FFConnect die Funktion _FFStart verwenden. Hier kannst du dann auch eine Start URL als Parameter angeben, was die Zeile _FFOpenURL überflüssig macht. Da du deinem Log zu Folge aber Win7 benutzt wird _FFStart bei dir nicht funktionieren, siehe dazu auch mein Posting inklusive Lösungsansatz in diesem Thread:

    https://autoit.de/index.php?page…2113#post192113

    Alternativ musst du anderweitig dafür sorgen dass FF gestartet wird und dann wie im obigen Beispiel per _FFConnect eine Verbindung herstellen.

    EDIT: Da war Stilgar wohl schneller beim posten... ^^

  • Problem besteht trotzdem.

    Wenn ich das hier versuche steht nach einer Weile einfach da das nicht mit FireFox Verbunden werden konnte (Script ist aus einem Tutorial vorgegeben):

    [autoit]

    #include <FF.au3> ; Muss immer da sein

    [/autoit][autoit][/autoit][autoit]

    _FFStart("www.web.de") ; oder _FFConnect() wenn FireFox bereits offen sein sollte! Startet den FireFox mit der Seite "www.web.de" und wartet mit Fortführung des Scripts, bis geladen

    [/autoit][autoit][/autoit][autoit]

    If _FFIsConnected() Then ; Wenn FireFox nun verbunden ist, dann...
    Sleep (1000) ; 1 Sekunde zum Verdeutlichen
    _FFOpenURL ("www.google.de") ; Navigiert uns zu "www.google.de"
    Sleep (1000) ; 1 Sekunde zum Verdeutlichen
    _FFQuit() ; Beendet das Ganze wieder
    Else ; Wenn FF nicht verbunden ist...
    MsgBox(64, "Ein Fehler ist aufgetreten", "Eine Verbindung mit dem Mozilla FireFox war nicht möglich!")
    EndIf

    [/autoit]

    Und das steht dann unten:

  • Hallo,

    Bei einem 64 Bit System muss die Funktion __FFStartProcess wie folgt angepasst werden

    __FFStartProcess
    [autoit]

    ; #INTERNAL_USE_ONLY# ==========================================================
    ; Name ..........: __FFStartProcess
    ; Description ...: Starts the firefox.exe
    ; AutoIt Version : V3.3.0.0
    ; Syntax ........: __FFStartProcess([$sURL = "about:blank"[, $bNewWin = False[, $sProfile = "default"[, $bNoRemote = False[, $bHide = False[, $iPort = 4242[, $iTimeOut = 30000]]]]]]])
    ; Parameter(s): .: $sProfile - Optional: (Default = "default") :
    ; $bNewWin - Optional: (Default = false) :
    ; $bNoRemote - Optional: (Default = false) :
    ; $bHide - Optional: (Default = False) :
    ; $iPort - Optional: (Default = 4242) :
    ; $iTimeOut - Optional: (Default = 30000) : min. 2000ms
    ; Return Value ..: Success - 1
    ; Failure - 0
    ; @ERROR -
    ; @EXTENDED - PID from the firefox.exe
    ; Author(s) .....: Thorsten Willert
    ; Date ..........: Wed Nov 04 16:01:59 CET 2009
    ; ==============================================================================
    Func __FFStartProcess($sURL = "about:blank", $bNewWin = False, $sProfile = "default", $bNoRemote = False, $bHide = False, $iPort = 4242, $iTimeOut = 30000)
    Local Const $sFuncName = "__FFStartProcess"

    [/autoit] [autoit][/autoit] [autoit]

    Local $PID = -1
    Local $sNoRemote = "", $sNewWin
    Local $sProcName = $_FF_PROC_NAME

    [/autoit] [autoit][/autoit] [autoit]

    If $sProfile = "default" Then
    $sProfile = ''
    Else
    $sProfile = ' -P "' & $sProfile & '"'
    EndIf
    If $bNoRemote Then $sNoRemote = "-no-remote"
    If $bNewWin Then $sNewWin = "-new-window"
    $sURL = '"' & $sURL & '"'
    If $iTimeOut < 2000 Then $iTimeOut = 2000

    [/autoit] [autoit][/autoit] [autoit]

    If @OSArch = "x64" Then ;Modified
    Local $sHKLM = "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mozilla\Mozilla Firefox\"
    Else
    Local $sHKLM = "HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox"
    EndIf
    Local $sFFExe = RegRead($sHKLM & "\" & RegRead($sHKLM, "CurrentVersion") & "\Main", "PathToExe")

    If @error Then
    SetError(__FFError($sFuncName, $_FF_ERROR_GeneralError, "Error reading registry entry for FireFox." & @CRLF & _
    "HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox\*CurrentVersion*\Main\PathToExe" & @CRLF & _
    "Error from RegRead: " & @error))
    Return 0
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Local $sCommand = StringFormat('"%s" %s %s %s -repl %i %s', $sFFExe, $sNewWin, $sURL, $sNoRemote, $iPort, $sProfile)
    $PID = Run($sCommand)
    If $bHide Then BlockInput(1)

    [/autoit] [autoit][/autoit] [autoit]

    Local $iTimeOutTimer = TimerInit()
    While 1
    Sleep(2000)
    If ProcessExists($sProcName) Then ExitLoop
    If (TimerDiff($iTimeOutTimer) > $iTimeOut) Then
    SetError(__FFError($sFuncName, $_FF_ERROR_Timeout, "Browser process not exists: " & $sProcName))
    BlockInput(0)
    Return 0
    EndIf
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    If $bHide Then
    Local $WINTITLE_MATCH_MODE = AutoItSetOption("WinTitleMatchMode", 4)
    WinWaitActive("[CLASS:MozillaUIWindowClass]")
    Sleep(500)
    WinSetState("[CLASS:MozillaUIWindowClass]", "", @SW_MINIMIZE)
    BlockInput(0)
    AutoItSetOption("WinTitleMatchMode", $WINTITLE_MATCH_MODE)
    Else
    Sleep(1000)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $_FF_COM_TRACE Then ConsoleWrite('__FFStartProcess: "' & $sCommand & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    SetExtended($PID)
    Return 1
    EndFunc ;==>__FFStartProcess

    [/autoit]

    Lg, Fabian

    2 Mal editiert, zuletzt von Fabian (11. November 2010 um 21:13)

  • Öhm, denke ich nicht, ich musste nix anpassen, funzt trotzdem ;)

    Code
    #include <FF.au3>
    $url = "http://google.de"
    _FFStart($url)
    If _FFIsConnected() Then
    	MsgBox(64, "Working", "Perfekt, es hat funktioniert ;)")
    Else
    	MsgBox(64, "Ein Fehler ist aufgetreten", "Eine Verbindung mit dem Mozilla FireFox war nicht möglich!")
    EndIf 
    _FFWindowClose()

    Also das sollte bestimmt funzen ;)

    Lg

    PS: Ansonsten sind die Addons ned installiert...

  • Öhm, denke ich nicht, ich musste nix anpassen, funzt trotzdem ;)

    Ich musste diese Anpassung unter Windows 7 64-Bit vornehmen und ich kenne auch noch weitere Benutzer welche dies machen mussten ;)