![]() |
Dateiendung unter Windows Vista registrieren
Hallo,
ich steh vor dem Problem, eine Dateiendung unter Windows Vista mit einer Defaultapplikation zu verknüpfen. Unter den bisherigen Windowssystemen ging das ja ganz gut, wenn man diverse Registry-Einträge gesetzt hat. Das klappt auch unter Vista noch, wenn man die Einträge per Hand in der Registry macht. Nur, es geht halt nicht mehr per Programm: ich hab ein kleines Delphi-Programm, daß mir die Einträge unter HKEY_CLASSES_ROOT setzt:
Delphi-Quellcode:
Hier bekomme ich immer die Meldung, d.h. OpenKey schlägt fehl. Ich vermute mal, daß das irgendwas mit dem neuen Sicherheitskonzept von Vista zu tun hat, daß ich nichts mehr in die Registry schreiben kann.
Reg := TRegistry.Create;
try Reg.RootKey := HKEY_CLASSES_ROOT; if Reg.OpenKey('.uko', True) then begin Reg.WriteString('','uko'); Reg.CloseKey; end else ShowMessage('.uko failed'); ... finally Reg.Free; end; Nur, wie registriert man dann unter Vista korrekt eine Dateiendung für ein Programm? Gibt es hier irgendwo Info dazu? viele Grüße, Ulrich |
Re: Dateiendung unter Windows Vista registrieren
Lass dir doch mal die richtige fehlermeldung von Windows mit GetLastError uns SysErrorMessage ausgeben, dann weißt du auch, warum OpenKey fehlschlägt.
|
Re: Dateiendung unter Windows Vista registrieren
Hallo Michael,
getan wie gesagt: ErrorCode: 0 ErrorMessage: der Vorgang wurde erfolgreich beendet :gruebel: grüße, Ulrich |
Re: Dateiendung unter Windows Vista registrieren
bist du denn schonmal in OpenKey rein gesteppt?
|
Re: Dateiendung unter Windows Vista registrieren
Nein, da ich für Vista nur als Zielplattform entwickeln/testen muß, aber dort kein Delphi installiert hab.
Aber inzwischen bin ich etwas schlauer: Es ziemlich sicher etwas mit den Zugriffsrechten unter Vista zu tun: Wenn man das Programm im Explorer explizit als Administrator startet (oder in setup umbenennt und startet), dann kommen ein paar nette Meldungen, ob man das Programm denn wirklich starten will aber es funktioniert und die Daten werden in die Registry geschrieben. Bleibt für mich jetzt erst mal die Frage, wie man Vista per Programm zwingen kann, in so was wie den Admin-Mode umzuschalten und wenn's geht, bitte ohne nervige Meldungen (die klickt der Benutzer doch eh nur weg). Ulrich |
Re: Dateiendung unter Windows Vista registrieren
![]() btw, ohne Meldung geht es aber nicht, denn die UAC hat ja den Sinn, den Anwender über potentielle Gefahrenquellen aufzuklären. Insofern finde ich das Prinzip nicht schlecht (kenne es ja in ähnlicher Form von Ubuntu), und du solltest immer daran denken, dass nicht jeder Anwender das UAC deaktiviert. Gute Sache, um die Lauffähigkeit der eigenen Programme zu testen. :thumb: |
Re: Dateiendung unter Windows Vista registrieren
Zitat:
|
Re: Dateiendung unter Windows Vista registrieren
@Mathias: danke für den Link!
@Jens: Das Programm selbst läuft sowohl als Administrator als auch als normaler Benutzer. Nur die Installation muß immer als Administrator erfolgen, da bei Bedarf die MS Ink Komponenten installiert werden. Insofern war es nie ein Problem, bei der Installation gleich mal die Einträge für die Registrierung als Defaultanwendung zu setzen (so der Benutzer das wollte). Und eben letzteres klappt nun nicht mehr, wenn das Programm unter Vista installiert wird. Grüße, Ulrich |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz