Gewusst wie: zuordnen eines Programms zu einem Dateityp, aber nur für den aktuellen Benutzer?
So, ich kann keine Verbindung zu meinem Programm einen bestimmten Dateityp aus, ohne dass der Arme user zu geben Sie Ihren Administrator-Passwort (es kann ok sein, für private Anwender, aber es ist ein riesiges problem für Nutzer in einem Firmennetzwerk env). In diesem Fall ist die einzige Lösung ist, den Verein nur für den aktuellen Benutzer.
Habe ich versucht, dass doch etwas nicht funktioniert.
Wenn ich das richtig verstehe, ich habe das schreiben ein Schlüssel, wie (sagen wir mal) '.mp3' in ctCurUserFileExt und schreiben es so etwas wie "my_file'. Dann in ctCurUserClases ich einen Schlüssel wie diese:
WriteReg_String(RootKey, ctCurUserClases+ 'my_file\shell\open\command', '', Application.ExeName+ ' "%L"', TRUE)
Allerdings, wenn ich einen Doppelklick auf die Datei, Windows fragt mich mit welchem Programm sollte es öffnen.
Hier sind die Konstanten:
CONST
RootKey= 'HKEY_CURRENT_USER';
ctCurUserFileExt= '\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\';
ctCurUserClases = '\Software\Classes\';
- Möglich dupe
- Hi Ngln. Es ist NICHT ein dupe. Das ist etwa wie zu assoziieren, die für alle Benutzer (erfordert erhöhte Rechte). Ich brauche ohne Erhöhung (also nur für den aktuellen Benutzer).
- warum nicht verwenden TRegistry, die durch die Art und Weise?
- Ich verwende TRegistry.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie sich registrieren wollen der Verband für alle Benutzer schreiben Ihre Daten zu
Wenn Sie wollen, um die Eintragung des Vereins nur für den aktuellen Benutzer schreiben Ihre Daten zu
Dies ist, wie um letzteres zu tun:
Diesem zugeordnet werden .myfile Dateien namens "Meine Ganz Eigene Text-Datei-Typ", so dass Sie das Symbol von notepad.exe und eröffnet wird notepad.exe. Die Letzte Zeile zeigt an, Explorer auf "reload" selbst, um die änderungen an der Datei vorgenommen Verbände. Zum Beispiel, Explorer, Datei-Listen-Ansichten-update. Die WinAPI-Funktion
SHChangeNotify
deklariert istShlObj.pas
sind, so müssen Sieuses ShlObj
.Beachten Sie, dass die
%1
imshell\open\command
wird erweitert, um die aktuelle Datei. Zum Beispiel, wenn Sie Doppel-klicken Sie aufC:\some dir\test.myfile
, dann Explorer ausführen des BefehlsHaben Sie bei uns die Einstellung unter HKEY_CURRENT_USER\Software\Classes als pro http://support.microsoft.com/kb/257592