.xpi mit firefox öffnen

  • Und das nächste Prob!

    Wie bekomme ich es hin das eine beliebige .xpi Datei direkt mit Firefox geöffnet wird. Leider erstellt Firefox keinen Öffnen mit Eintrag in der Registrierung und erst Firefox starten und dann auf Datei öffnen usw. ist ja auch nicht die schönste Methode ;(

    Also halt so als ob ich RMK auf die .xpi Datei mache und dann sage Öffne mit Firefox.exe. Nur als Befehl im Script

    THX

  • Hab ich mich irgendwie undeutlich ausgedrückt, ist die Frage zu banal oder sowas. Wenn´s nicht geht würde mir ja diese Aussage reichen: Geht nicht!

    • Offizieller Beitrag

    Mach mal nen Rechntsklick auf die XLI Datei dann Offnen mit und dann Standardprogramm auswählen .Firefox auswählen und Dateityp immer mit dem ausgewählten Programm aktivieren und fertig .

  • Ja ne is klar . Wie ich das bei mir hinbekomme ist kein Thema! Da das Script aber auch auf anderen Rechnern laufen wird und da dann genau das selbe Problem bestehen wird ist das leider keine Lösung.

  • Jau Danke.

    Hab ich mal probiert funktioniert aber nicht. Wahrscheinlich hab ich was falsch gemacht!
    Hier mal ein Beispiel:

    [autoit]

    #include <GUIConstants.au3>
    Call("_RegisterFileType")
    sleep(1000)
    ShellExecute("c:\test\greasemonkey.xpi")
    ;~ Run("c:\test\greasemonkey.xpi")

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

    $sFileType = "xpi"
    $sDescription = "Firefox Installations Paket"
    $sAppName = "C:\Programme\Mozilla Firefox\firefox.exe"
    ;===============================================================================
    ;
    ; Description: Verknüpft Dateierweiterung mit Anwendung
    ; Parameter(s): $sFileType = Dateierweiterung
    ; $sDescription = Beschreibung für die Datei
    ; (optional) $sAppName = Anwendung für die Registriert werden
    ; soll, wird keine Anwendung angegeben
    ; wird die aktuelle Anwendung eingetragen
    ; Requirement(s): keine
    ; Return Value(s): bei Erfolg: 1
    ; bei Fehler: 0 und @error = 1
    ; Author(s): bernd670
    ;
    ;===============================================================================

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

    Func _RegisterFileType($sFileType, $sDescription, $sAppName)
    Dim $sTypeName

    If $sFileType = "" Or $sDescription = "" Then
    SetError(1)
    Return 0
    EndIf

    If $sAppName = "" Then $sAppName = @ScriptFullPath

    $sFileType = StringLower($sFileType)

    If StringLeft($sFileType, 1) <> "." Then
    $sTypeName = $sFileType
    $sFileType = "." & $sFileType
    Else
    $sTypeName = StringRight($sFileType, StringLen($sFileType) - 1)
    EndIf

    $sTypeName = $sTypeName & "file"

    RegWrite("HKCR\" & $sFileType, "", "REG_SZ", $sTypeName)
    RegWrite("HKCR\" & $sTypeName, "", "REG_SZ", $sDescription)
    RegWrite("HKCR\" & $sTypeName & "\shell\open\command", "", "REG_SZ", $sAppName & " -cal %1")
    RegWrite("HKCR\" & $sTypeName & "\DefaultIcon", "", "REG_SZ", $sAppName & ",0")

    SetError(0)
    Return 1
    EndFunc ;==>_RegisterFileType

    [/autoit]

    Sagt nach wie vor das keine Anwendung für den Datei Typ registriert ist und es wird auch kein Reg Eintrag erstellt

    • Offizieller Beitrag

    Ja, der Funktionsaufruf ist falsch. Versuch's mal so:

    Spoiler anzeigen
    [autoit]


    $sFileType = "xpi"
    $sDescription = "Firefox Installations Paket"
    $sAppName = "C:\Programme\Mozilla Firefox\firefox.exe"
    $ret = _RegisterFileType($sFileType, $sDescription, $sAppName)
    If $ret Then MsgBox(0,0,'erfolgreich!')
    sleep(1000)
    ShellExecute("c:\test\greasemonkey.xpi")

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

    ;===============================================================================
    ;
    ; Description: Verknüpft Dateierweiterung mit Anwendung
    ; Parameter(s): $sFileType = Dateierweiterung
    ; $sDescription = Beschreibung für die Datei
    ; (optional) $sAppName = Anwendung für die Registriert werden
    ; soll, wird keine Anwendung angegeben
    ; wird die aktuelle Anwendung eingetragen
    ; Requirement(s): keine
    ; Return Value(s): bei Erfolg: 1
    ; bei Fehler: 0 und @error = 1
    ; Author(s): bernd670
    ;
    ;===============================================================================

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

    Func _RegisterFileType($sFileType, $sDescription, $sAppName)
    Dim $sTypeName

    If $sFileType = "" Or $sDescription = "" Then
    SetError(1)
    Return 0
    EndIf

    If $sAppName = "" Then $sAppName = @ScriptFullPath

    $sFileType = StringLower($sFileType)

    If StringLeft($sFileType, 1) <> "." Then
    $sTypeName = $sFileType
    $sFileType = "." & $sFileType
    Else
    $sTypeName = StringRight($sFileType, StringLen($sFileType) - 1)
    EndIf

    $sTypeName = $sTypeName & "file"

    RegWrite("HKCR\" & $sFileType, "", "REG_SZ", $sTypeName)
    RegWrite("HKCR\" & $sTypeName, "", "REG_SZ", $sDescription)
    RegWrite("HKCR\" & $sTypeName & "\shell\open\command", "", "REG_SZ", $sAppName & " -cal %1")
    RegWrite("HKCR\" & $sTypeName & "\DefaultIcon", "", "REG_SZ", $sAppName & ",0")

    SetError(0)
    Return 1
    EndFunc ;==>_RegisterFileType

    [/autoit]
  • hab die Funktion erweitert. Jezt kann man mehr einstellen ;) ( Die Werte hab ich jetzt so genommen, wie sie bei mir vom Firefox eingestellt wurden)

    Spoiler anzeigen
    [autoit]

    $sFileType = "xpi"
    $sDescription = "Firefox Installations Paket"
    $sAppName = 'C:\PROGRA~1\MOZILL~1\FIREFOX.EXE'
    $sParameter = '-url "%1"'
    $sTypeName = "FirefoxExtFile"

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

    $ret = _RegisterFileType($sFileType, $sDescription, $sAppName,$sParameter,$sTypeName)
    If $ret Then MsgBox(0,0,'erfolgreich!')
    sleep(1000)
    ShellExecute("c:\test\greasemonkey.xpi")

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

    ;===============================================================================
    ;
    ; Description: Verknüpft Dateierweiterung mit Anwendung
    ; Parameter(s): $sFileType = Dateierweiterung
    ; $sDescription = Beschreibung für die Datei
    ; (optional) $sAppName = Anwendung für die Registriert werden
    ; soll, wird keine Anwendung angegeben
    ; wird die aktuelle Anwendung eingetragen
    ; (optional) $sParameter = Parameter für die Datei, Standard: "%1"
    ; (optional) $sTypeName = Name, den der Typ haben soll ( Standard: $sFileType & "file")
    ; (optional) $IconIndex = Index des Icons in der Datei (Standard 0)
    ; (optional) $sIconFile = Datei mit dem Icon, sonst $sAppName
    ; Requirement(s): keine
    ; Return Value(s): bei Erfolg: 1
    ; bei Fehler: 0 und @error = 1
    ; Author(s): bernd670
    ; Modified: Prog@ndy
    ;
    ;===============================================================================

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

    Func _RegisterFileType($sFileType, $sDescription, $sAppName,$sParameter="", $sTypeName="", $IconIndex=0, $sIconFile="")


    If $sFileType = "" Or $sDescription = "" Then
    SetError(1)
    Return 0
    EndIf

    If $sAppName = "" Then $sAppName = @ScriptFullPath


    $sFileType = StringLower($sFileType)

    If StringLeft($sFileType, 1) <> "." Then
    If $sTypeName = "" Then $sTypeName = $sFileType&"file"
    $sFileType = "." & $sFileType
    ElseIf $sTypeName = "" Then
    $sTypeName = StringRight($sFileType, StringLen($sFileType) - 1)&"file"
    EndIf
    If $sIconFile="" Then $sIconFile = $sAppName
    If $sParameter = "" Then $sParameter = '"%1"'

    RegWrite("HKCR\" & $sFileType, "", "REG_SZ", $sTypeName)
    RegWrite("HKCR\" & $sTypeName, "", "REG_SZ", $sDescription)
    RegWrite("HKCR\" & $sTypeName & "\shell\open\command", "", "REG_SZ", '"' & $sAppName &'" ' & $sParameter)
    RegWrite("HKCR\" & $sTypeName & "\DefaultIcon", "", "REG_SZ", $sIconFile & "," & Number($IconIndex))

    SetError(0)
    Return 1
    EndFunc ;==>_RegisterFileType

    [/autoit]