• Hi,

    leider ist bei Win 7 der Pfad zur Firefox.exe nichtmehr unter "HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox" bzw. bei einer Portablen Version auch nicht. Fände es gut wenn man bei _FFStart() den Pfad zur Firefox.exe als optionales Parameter auch übergeben könnte.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Win7 x64 Professional

  • Keine Ahnung was magnifier512 für ein Win 7 hat, aber ich habe hier drei Rechner, einer sogar nochmal neu aufgesetzt, bei denen [HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla] nicht existiert. Die einzigen Punkte an denen die firefox.exe eindeutig erwähnt ist sind:

    Zitat


    HKEY_CLASSES_ROOT\FirefoxHTML\DefaultIcon
    HKEY_CLASSES_ROOT\FirefoxHTML\shell\open\command
    HKEY_CLASSES_ROOT\FirefoxURL\DefaultIcon
    HKEY_CLASSES_ROOT\FirefoxURL\shell\open\command
    HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\Shell\MuiCache

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • ganz normales win 7, nicht von vista geupdated sondern komplett neu installiert

  • es gibt ein 64-bit ff? wo? her damit? ^^

    nein, meins ist 32-bit und im januar normal von der mozilla seite heruntergeladen bzw jetzt per update auf 3.6 (task-manager: firefox.exe *32)

  • Hallo Leute.

    Ich habe die Funktion __FFStartProcess etwas erweitert.

    [autoit]

    if(StringInStr(RegRead("HKEY_CLASSES_ROOT\http\shell\open\command",""),"firefox.exe")) Then
    ShellExecute("http://" & $sURL)
    endif

    [/autoit]

    Damit wird einfach geprüft ob Firefox mit dem HTTP protocol verknüpt ist und dann einfach ein Link aufgerufen.

    Könnte mir mal jemand bitte testen ob das auch unter Windwos 7 geht? Danke sehr habe leiter nur XP zur hand.


    In die Funktion eingearbeitet würde das so aussehen:

    [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]

    Local $sHKLM = "HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox"
    Local $sFFExe = RegRead($sHKLM & "\" & RegRead($sHKLM, "CurrentVersion") & "\Main", "PathToExe")
    If @error Then
    if(StringInStr(RegRead("HKEY_CLASSES_ROOT\http\shell\open\command",""),"firefox.exe")) Then
    ShellExecute("http://" & $sURL)
    Else
    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][autoit][/autoit][autoit][/autoit]

    Edit. Uii war wohl schon etwas später gestern. Hab ein paar Fehler korrigiert.

    8 Mal editiert, zuletzt von CraHack (2. April 2010 um 17:11)