AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Registrieren (Verknüpfen) von Dateierweiterungen unter Vista
Thema durchsuchen
Ansicht
Themen-Optionen

Registrieren (Verknüpfen) von Dateierweiterungen unter Vista

Ein Thema von user69 · begonnen am 22. Feb 2009 · letzter Beitrag vom 2. Mär 2009
Antwort Antwort
user69

Registriert seit: 10. Dez 2004
92 Beiträge
 
#1

Registrieren (Verknüpfen) von Dateierweiterungen unter Vista

  Alt 22. Feb 2009, 17:14
Hallo,

Was ist denn unter Vista der beste (und für den Benutzer) einfachste Weg Dateierweiterungen mit meine Programm zu verknüpfen.

Ich nutze folgenden CODE:
Code:
Code:
  WriteError:= False;
  Reg:= TRegistry.Create;
  Reg.RootKey:= HKEY_CLASSES_ROOT;
  Reg.OpenKey('.obj', True);
  try
    Reg.WriteString('', 'OBJ.Renderfile');
  except
    WriteError:= True;
  end;
  Reg.CloseKey;
  if not WriteError then begin
    Reg.OpenKey('OBJ.Renderfile', True);
    try
      Reg.WriteString('', 'Renderfile');
    except
      // 
    end;
    Reg.OpenKey('shell', True);
    Reg.OpenKey('open', True);
    Reg.OpenKey('command', True);
    try
      Reg.WriteString('', '"' + 'C:\Pfad\myprog.exe'+ '"' + ' "%1"');
    except
      // 
    end;
    Reg.CloseKey;
    Reg.CloseKey;
    Reg.CloseKey;
    Reg.CloseKey;
  end;


Unter XP war das ok (man brauchte aber trotzdem Admin Rechte).

Aber unter Vista ist das ja ein Problem mit UAC und den Adminrechten.
Ich starte mein Programm (Siehe manifest) as Invoker - so wird es ja für Vista empfohlen, wenn man nicht Adminrechte braucht.
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker"/>
</requestedPrivileges>
</security>

Funktionen, die Adminrechte benötigen sollte man in andere Programme legen habe ich gehört.
So funktioniert es auch, aber für Benutzer wäre es schön, wenn alles aus dem Hauptprogramm raus ginge. Niemand ruft mein Programm zum setzen der Dateiverknüpfungen auf.
Ein Unterprogramm mit Adminrechten aus meine Programm zu starten ist wohl laut Vita Gidelines auch nicht möglich, wenn mein Programm as Invoker läuft.



Wie kann ich nun dennoch aus meinem Programm Dateierweiterungen unter Vista setzen, ohne dass immer beim Programmstart meines Programms Adminrechte nötig sind.
Nachfragen nach Adminrechten beim Verknüpfungen setzen wäre ok.

Grüße
User69
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Registrieren (Verknüpfen) von Dateierweiterungen unter V

  Alt 22. Feb 2009, 17:20
Zitat von user69:
Ein Unterprogramm mit Adminrechten aus meine Programm zu starten ist wohl laut Vita Gidelines auch nicht möglich, wenn mein Programm as Invoker läuft.
Doch ist es. Einfach dieses Programm mit einem passenden Manifest versehen und mit Shellexecute starten.
Um den UAC-Dialog kommst du keinesfalls rum.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
user69

Registriert seit: 10. Dez 2004
92 Beiträge
 
#3

Re: Registrieren (Verknüpfen) von Dateierweiterungen unter V

  Alt 2. Mär 2009, 22:57
Kann man das registrieren denn auch aus dem Programm selbst unter Vista machen?

Also ohne Adminrechten starten und dann nur für diese Aktion die Nachfrage der UAC bekommen.
Davor sollte ich herausbekommen, ob Adminrechte für denn User vorliegen (was bei mir auch nicht funktioniert, wenn ich as ivoker starte).

Gibts dazu auch Ideen?

User69
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.351 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Registrieren (Verknüpfen) von Dateierweiterungen unter V

  Alt 2. Mär 2009, 23:32
Du brauchst um Administratorrechte anzufordern einen separaten Prozess, das kann auch ein COM Objekt sein. So funktioniert das auch ohne zusätzliche Exe. Es gibt soweit ich weiß nur diese beiden Wege.

// EDIT:
Um das nochmal klar zu sagen: Ein Prozess selbst kann niemals höhere Rechte bekommen während er läuft.

// EDIT2:
Wie das mit COM geht:
http://developersoven.blogspot.com/2...part_3659.html
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:52 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