Thema: Delphi Shell Extension Menü

Einzelnen Beitrag anzeigen

Benutzerbild von CReber
CReber

Registriert seit: 26. Nov 2003
Ort: Berlin
343 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Shell Extension Menü

  Alt 29. Mai 2004, 12:25
Delphi-Quellcode:
procedure TUSBCryptExtFactory.UpdateRegistry(Register: Boolean);
var
  ClassID: string;
  rgHandle: HKEY;
  lpType, cbData: DWORD;
  s: string;
begin
  s := '';
  if RegOpenKeyEx(HKEY_CLASSES_ROOT, '.jpg', 0, KEY_READ, rgHandle) =
    ERROR_SUCCESS then // gibt ein handle zum .jpg Ordner zurück -> rgHandle
  begin
    try
      if RegQueryValueEx(rgHandle, '', nil, @lpType, nil, @cbData) = // irgendwas wird kopiert
        ERROR_SUCCESS then
      begin
        setlength(s, cbData); // get s
        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_USBCRYPT);
    CreateRegKey(s + '\shellex', '', '');
    CreateRegKey(s + '\shellex\ContextMenuHandlers', '', '');
    CreateRegKey(s + '\shellex\ContextMenuHandlers\USBCryptExt', '', ClassID);
  end
  else
  begin
    DeleteRegKey(s + '\shellex\ContextMenuHandlers\USBCryptExt');
    inherited UpdateRegistry(Register);
  end;
end;
könnte mir jemand diesen code in pseudocode erklären? oben wird s ausgelesen und dann wird unten die GUID eingetragen das ist ja relativ verständlich (wenn es denn so ist)... was für mich aber im moment überhaupt nicht verständlich ist

bei .jpg kommt der auf s = CLSID/OISjpegfile/shellex/ContextMenuHandlers

Ich würde das gerne in * eintragen
Christian Reber
  Mit Zitat antworten Zitat