[Windows] Registry-Architektur 64-bit vs 32-bit

Hallo HaBo'ler!
Ich habe eine Software die sich als eigenen Punkt in das Kontextmenü einträgt, wie man das von Musikplayern und Antivirenscannern oft sieht. Soweit kein Problem. Unter 32-bittigem Windows (getestet unter XP + Vista) funktioniert das ganz einfach.

Pseudocode-Lösung (im echten Fall muss es nachher für Nullsoft Scriptable Install System geschrieben werden) unter 32-bit:
Code:
$lese = registry("HKEY_CLASSES_ROOT\.filetype", "");
schreibe_registry("HKEY_CLASSES_ROOT\$lese\shell\Kontextmenueeintrag", "", "");
schreibe_registry("HKEY_CLASSES_ROOT\$lese\shell\Kontextmenueeintrag\command", "", "C:\Programme\blablabla\bla.exe -open %1");

Jetzt meldet mir ein Betatester mit Vista 64-bit, dass das "nicht funzt". Ich habe aber keine Möglichkeit direkt an einem 64-bit Vista rumzuprobieren, daher hat er mir verschiedenste Dumps von Unterschlüsseln geschickt und ich habe eine gefühlte Stunde lang gegooglet. Das einzige was mir Google lieferte, war folgende - erfrischend simpel aussehende Lösung -, die leider auch nicht funktionierte.
Code:
schreibe_registry("HKEY_CLASSES_ROOT\.filetype\shell\Kontextmenueeintrag", "", "");
schreibe_registry("HKEY_CLASSES_ROOT\.filetype\shell\Kontextmenueeintrag\command", "", "C:\Programme\blablabla\bla.exe -open %1");
Wäre ja auch zu schön um Wahr zu sein - es geht nicht. Ich lies mir von meinem Tester Dumps eines Dateityps schicken, bei dem eine andere Software etwas in der Art eingetragen hat:
Code:
[HKEY_CLASSES_ROOT\.mp3]
"PerceivedType"="audio"
@="foobar2000.MP3"
"Content Type"="audio/mpeg"
".bak"="WMP11.AssocFile.MP3"

[HKEY_CLASSES_ROOT\.mp3\OpenWithProgIds]
"MP3File"=hex(0):
"WMP11.AssocFile.MP3"=hex(0):
"QuickTime.mp3"=hex(0):

[HKEY_CLASSES_ROOT\.mp3\PersistentHandler]
@="{098f2470-bae0-11cd-b579-08002b30bfeb}"

[HKEY_CLASSES_ROOT\.mp3\ShellEx]

[HKEY_CLASSES_ROOT\.mp3\ShellEx\{b0450a3b-6bcb-468e-a6c1-eba9c8c0c586}]
@="{d1d82552-50db-4c62-9c46-235230826f88}"

[HKEY_CLASSES_ROOT\.mp3\ShellEx\{BB2E617C-0920-11D1-9A0B-00C04FC2D6C1}]
@="{9DBD2C50-62AD-11D0-B806-00C04FD706EC}"

[HKEY_CLASSES_ROOT\.mp3\ShellEx\{e357fccd-a995-4576-b01f-234630154e96}]
@="{9DBD2C50-62AD-11D0-B806-00C04FD706EC}"
Das "freut" mich natürlich sehr, dass ich jetzt raten darf, wass ich aus diesen langen kryptischen {...} lesen kann. Ich tippe auf Hexadezimal - aber was nützen mir Zahlen? Sind das Binärcodes? Entweder weiß Google es nicht, oder ich bin zu blöd, die richtigen Keywords einzugeben. Kann mir jemand helfen? Vielleicht hat ja jemand schon Erfahrungen mit einem solchen Problem gemacht.
Vielen Dank im Vorraus,
Raphael
 
Ich kann dir zwar nicht sagen wie du dein Problem löst, jedoch was die kryptischen Zahlenreihen sind. Es sind Globally Unique Identifier (GUID). Jetzt hast du dein Keyword ;)
Ich bezweifle aber, dass dir das bei deinen Problem hilft.
 
Zurück
Oben