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.
Dateityp registrieren
-
- [ gelöst ]
-
oliver -
8. Oktober 2006 um 23:37 -
Geschlossen -
Erledigt
-
-
- Offizieller Beitrag
Hallo!
Aus Galenda:
[autoit];===============================================================================
[/autoit][autoit][/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
;
;===============================================================================
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]
;
; 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
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")
endfuncfunc unregisterdatei ($endung)
regdelete("HKCR\" & "." & $endung)
regdelete("HKCR\" & $endung & "file")
endfuncBei 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]