Registriert seit: 11. Sep 2005
327 Beiträge
Turbo Delphi für Win32
|
Shellextension für alle Dateien (HKEY_CLASSES_ROOT\*)
27. Mär 2008, 13:34
Hallo,
ich möchte eine Shellextension registrieren und habe mir dazu Luckie´s ExifReader angesehen und angepasst, das Ganze funktioniert ja ganz gut bei bestimmten Dateitypen, wenn ich´s aber für alle haben möchte (*), kommt beim registrieren immer " DllRegisterServer in Blub.dll fehlgeschlagen. Fehlercode: 0x80004005". Weis jemand warums dort nicht geht und wie man´s sonst machen muss? Hier noch der Code:
Delphi-Quellcode:
procedure TBlubExtFactory.UpdateRegistry(Register: Boolean);
var
ClassID: string;
rgHandle: HKEY;
lpType, cbData: DWORD;
s: string;
begin
s := '';
if RegOpenKeyEx(HKEY_CLASSES_ROOT, '*', 0, KEY_READ, rgHandle) = // < da stehts, mit '*' kommt ein Fehler, mit z.B. '.jpg' oder '.bmp' läufts
ERROR_SUCCESS then
begin
try
if RegQueryValueEx(rgHandle, '', nil, @lpType, nil, @cbData) =
ERROR_SUCCESS then
begin
setlength(s, cbData);
RegQueryValueEx(rgHandle, '', nil, nil, @s[1], @cbData);
setlength(s, cbData - 1);
end;
finally
RegCloseKey(rgHandle);
end;
end;
if Register then
begin
inherited UpdateRegistry(Register);
ClassID := GUIDToString(GUID_BLUBEXT);
CreateRegKey(s + '\shellex', '', '');
CreateRegKey(s + '\shellex\ContextMenuHandlers', '', '');
CreateRegKey(s + '\shellex\ContextMenuHandlers\BlubExt', '', ClassID);
end
else
begin
DeleteRegKey(s + '\shellex\ContextMenuHandlers\BlubExt');
inherited UpdateRegistry(Register);
end;
end;
MfG Sko
Zitat von Phoenix:
[ OT]Phoenix guckt in die Glaskugel, zuckt mit den Flügelspitzen, krächzt etwas von wegen 'Boden' und 'Scherben' und schubbst die Kugel in Richtung Tischkante.[/ OT]
Rockbox
|
|
Zitat
|