Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Betriebssysteme (https://www.delphipraxis.net/27-betriebssysteme/)
-   -   Dateiendung unter Windows Vista registrieren (https://www.delphipraxis.net/77806-dateiendung-unter-windows-vista-registrieren.html)

ULIK 25. Sep 2006 09:31


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:
  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;
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.
Nur, wie registriert man dann unter Vista korrekt eine Dateiendung für ein Programm? Gibt es hier irgendwo Info dazu?

viele Grüße,
Ulrich

Luckie 25. Sep 2006 09:55

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.

ULIK 25. Sep 2006 10:35

Re: Dateiendung unter Windows Vista registrieren
 
Hallo Michael,

getan wie gesagt:

ErrorCode: 0
ErrorMessage: der Vorgang wurde erfolgreich beendet :gruebel:

grüße,
Ulrich

SirThornberry 25. Sep 2006 10:52

Re: Dateiendung unter Windows Vista registrieren
 
bist du denn schonmal in OpenKey rein gesteppt?

ULIK 25. Sep 2006 11:01

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

MathiasSimmack 25. Sep 2006 11:13

Re: Dateiendung unter Windows Vista registrieren
 
klick (testen!), und auch mal ein bisschen im Web nach UAC suchen.

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:

SirThornberry 25. Sep 2006 11:25

Re: Dateiendung unter Windows Vista registrieren
 
Zitat:

Zitat von ULIK
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 ...

Hast du es bisher nicht als Administrator getestet? Dir ist aber schon klar das auf "hkey_classes_root" nur Administratoren Zugriff haben (schreibend) und nicht gewöhnliche User.

ULIK 25. Sep 2006 12:14

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 13:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz