Einzelnen Beitrag anzeigen

martinf16

Registriert seit: 26. Aug 2007
99 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Win7 64Bit und Dateiendungverknüpfung von XP

  Alt 18. Apr 2010, 16:06
Das kann doch irgendwie nicht sein.. Meine weiteren Tests haben folgendes ergeben:
  • Eintrag Folder\shell\Prog aktivieren: Geht unter Win7 64 mit API Call, aber nicht mit TRegistry.
  • Eintrag Folder\shell\Prog entfernen: Geht unter Win7 64 nicht mit API Call, dafür aber mit TRegistry.
  • Eintrag *\shell\Prog aktivieren: Geht unter Win7 64 weder mit API Call noch mit TRegistry. -> Geht mit Kombination aus beidem.
  • Eintrag *\shell\Prog entfernen: Geht unter Win7 64 nicht mit API Call, dafür aber mit TRegistry.

Unter Win XP 32 funktionieren in allen Fällen sowohl API Call als auch die Variante mit TRegistry. Gibt es vielleicht noch eine dritte Variante, vielleicht bekomme ich damit die Registrierung von * hin??


EDIT:
Es wird noch kurioser.. Die Verknüpfung mit * habe ich inzwischen durch probieren auch hinbekommen: Mit der API Funktion RegCreateKeyEx wird ein Key mit der Option KEY_WOW_64KEY erstellt und in diesem dann mit TRegistry geschrieben. Das funktioniert offenbar nur wenn der Flag, den Key gegebenenfalls neu zu erstellen bei OpenKey auf false steht. Das würde auch erklären wieso das Löschen immer funktioniert, nicht aber das erstellen. Denn beim Löschen habe ich ja den Wert auf false gehabt. Aber ist das nicht alles ein bisschen komisch?!

ZUSATZFRAGE:
Ich öffne RegCreateKeyEx mit KEY_WOW_64KEY und benutze TRegistry.Create(KEY_ALL_ACCESS or KEY_WOW_64KEY). Das funktioniert auch unter 32 bit XP. Sollte ich trotzdem vorher abfragen ob es sich um Win64 handelt oder ist das egal, schließlich funktioniert es ja trotzdem.. Oder kann das zu Problemen führen??
  Mit Zitat antworten Zitat