Dateityp registrieren

  • Hallo,
    möchte auf mehreren PC's einen Dateityp automatisch registrieren, weiss jemand wie das geht?
    Endung : .anf
    Anwendung : c:\bin\anfragen.exe
    Kann's nicht per Hand machen, sind zuviele PC's
    Und gleich vielleicht auch noch wie man's rückgängig machen kann falls es sich nicht bewähren sollte.

    • Offizieller Beitrag

    Hallo!

    Aus Galenda:

    [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
    ;
    ;===============================================================================
    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][autoit][/autoit][autoit][/autoit][autoit]

    ;===============================================================================
    ;
    ; Description: Hebt Verknüpfung einer Dateierweiterung mit Anwendung auf
    ; Parameter(s): $sFileType = Dateierweiterung
    ; Requirement(s): keine
    ; Return Value(s): bei Erfolg: 1
    ; bei Fehler: 0 und @error = 1
    ; Author(s): bernd670
    ;
    ;===============================================================================
    Func _UnRegisterFileType($sFileType)
    Dim $sTypeName

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

    $sFileType = StringLower($sFileType)

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

    $sTypeName = $sTypeName & "file"

    RegDelete("HKEY_CLASSES_ROOT\" & $sFileType)
    RegDelete("HKEY_CLASSES_ROOT\" & $sTypeName)

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

    [/autoit]


    Stammt von bernd670 - bitte nur mit Quellenangabe verwenden.

    peethebee

  • Werde ich mal gleich morgen früh probieren....wie immer sehr schnelle und fundierte antwort....werde das ganze aber erheblich kürzen....so auf 5 zeilen...mag kurz programme....so wie früher quick and dirty aber es läuft...

  • Hab's mal probiert - so sehen die funktionen jetzt aus:

    func registerdatei ($endung, $beschreibung, $anwendung)
    regwrite("HKCR\" & "." & $endung, "", "REG_SZ", $endung & "file")
    regwrite("HKCR\" & $endung & "file", "", "REG_SZ", $beschreibung)
    regwrite("HKCR\" & $endung & "file\shell\open\command", "", "REG_SZ", $anwendung & " %1")
    regwrite("HKCR\" & $endung & "file\DefaultIcon", "", "REG_SZ", $anwendung & ",0")
    endfunc

    func unregisterdatei ($endung)
    regdelete("HKCR\" & "." & $endung)
    regdelete("HKCR\" & $endung & "file")
    endfunc

    Bei registerdatei und command war ein fehler, dass -cal stört.....

    Funktioniert alles bis auf das icon für die datei....geht einfach nicht.....
    Jemand eine idee?

    • Offizieller Beitrag

    Hallo,

    das mit dem Icon funktioniert nur wenn das ICON auch mit in die EXE kompiliert wurde, standardmässig wird da das ICON von AutoIt mit einkompiliert!

    Wenn du eine ICO-Datei hast sollte folgendes gehen

    [autoit]

    regwrite("HKCR\" & $endung & "file\DefaultIcon", "", "REG_SZ", "PfadZurICODatei")

    [/autoit]

    oder aus einer DLL-Datei

    [autoit]

    regwrite("HKCR\" & $endung & "file\DefaultIcon", "", "REG_SZ", "PfadZurDLL,NummerDesICONs")

    [/autoit]

    z.B. aus der SHELL32.DLL

    [autoit]

    regwrite("HKCR\" & $endung & "file\DefaultIcon", "", "REG_EXPAND_SZ","%SystemRoot%\System32\shell32.dll,3")

    [/autoit]