Stworzyłem programik, który tworzy plik *.reg i wpisuje generowane GUID. Podaję kod. Czy ktoś włączyłby się i uzupełnił kod o zmianę DWORD na wpisy w EDIT.
uses Ole2
procedure TMainForm.Button1Click(Sender: TObject);
var
GU : TextFile;
Reg : TRegistry;
Value : String;
Guid: TGUID;
CLSIDStr: PWideChar;
begin
CoCreateGUID(Guid);
StringFromCLSID(Guid, ClSIDStr);
CLSID.Text := (CLSIDStr);
AssignFile(GU, 'GUID'+CLSID.TEXT+'.reg'); // Tworzy plik GUID.REG
ReWrite(GU);
Reg := TRegistry.Create;
try
Writeln(GU, 'Windows Registry Editor Version 5.00');
Writeln(GU, '');
Writeln(GU, '[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\
CurrentVersion\Explorer\MyComputer\NameSpace\'+CLSID.TEXT+']');
Writeln(GU, '@="'+EDIT2.TEXT+'"'); // Folder specjalny
Writeln(GU, '');
Writeln(GU, '[HKEY_CLASSES_ROOT\CLSID\'+CLSID.TEXT+']');
Writeln(GU, '@="'+EDIT3.TEXT+'"'); // Folder Specjalny - tekst tylko dla opisu
Writeln(GU, '"InfoTip"=hex(2):49,00,6e,00,66,00,6f,00,54,00,69,00,70,00,20,00,66,00,6f,00,\');
Writeln(GU, ' 6c,00,64,00,65,00,72,00,75,00,00,00');
Writeln(GU, '');
Writeln(GU, '"SortOrderIndex"=dword:00000060');
Writeln(GU, '"IntroText"=hex(2):49,00,6e,00,74,00,72,00,6f,00,54,00,65,00,78,00,74,00,20,00,\');
Writeln(GU, ' 66,00,6f,00,6c,00,64,00,65,00,72,00,75,00,00,00');
Writeln(GU, '"LocalizedString"="'+EDIT4.TEXT+'"'); // Folder specjalny
Writeln(GU, '');
Writeln(GU, '[HKEY_CLASSES_ROOT\CLSID\'+CLSID.TEXT+'\DefaultIcon]');
Writeln(GU, '@=hex(2):65,00,78,00,70,00,6c,00,6f,00,72,00,65,00,72,00,2e,00,65,00,78,00,65,\');
Writeln(GU, ' 00,2c,00,30,00,00,00');
Writeln(GU, '');
Writeln(GU, '[HKEY_CLASSES_ROOT\CLSID\'+CLSID.TEXT+'\Shell]');
Writeln(GU, '@="'+EDIT5.TEXT+'"'); //
Writeln(GU, '');
Writeln(GU, '[HKEY_CLASSES_ROOT\CLSID\'+CLSID.TEXT+'\Shell\Open]');
Writeln(GU, '@="'+EDIT6.TEXT+'"'); // Otwórz mój folder
Writeln(GU, '');
Writeln(GU, '[HKEY_CLASSES_ROOT\CLSID\'+CLSID.TEXT+'\Shell\Open\Command]');
Writeln(GU, '@="'+EDIT7.TEXT+'"'); // explorer.exe c:\\
Writeln(GU, '');
Writeln(GU, '[HKEY_CLASSES_ROOT\CLSID\'+CLSID.TEXT+'\ShellFolder]');
Writeln(GU, 'Attributes"=hex:40,00,00,02');
Writeln(GU, '"CallForAttributes"=dword:00000040');
finally
Reg.Free;
CloseFile(GU);
end;
end;
Edit to: CLSID, Edit2 do Edit7