Ja, der Funktionsaufruf ist falsch. Versuch's mal so:
Spoiler anzeigen
$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")
;===============================================================================
;
; 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
;
;===============================================================================
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