Техническая документация Borland (Borland Tech Doc) #3234
Данный демо-проект демонстрирует простое решение для добавления ярлыков (Shortcuts) на рабочий стол или в главное меню Windows 95 или Windows NT 4.0.
Код читает строковое значение из ключей регистра "Desktop" и "Start Menu" (ветка HKEY_CURRENT_USER), полный путь к которым:
Software\MicroSoft\Windows\CurrentVersion\Explorer\Shell Folders
-------------
Модуль Unit1
-------------
unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} uses ShlObj, ActiveX, ComObj, Registry; procedure TForm1.Button1Click(Sender: TObject); var MyObject : IUnknown; MySLink : IShellLink; MyPFile : IPersistFile; FileName : String; Directory : String; WFileName : WideString; MyReg : TRegIniFile; begin MyObject := CreateComObject(CLSID_ShellLink); MySLink := MyObject as IShellLink; MyPFile := MyObject as IPersistFile; FileName := 'NOTEPAD.EXE'; with MySLink do begin SetArguments('C:\AUTOEXEC.BAT'); SetPath(PChar(FileName)); SetWorkingDirectory(PChar(ExtractFilePath(FileName))); end; MyReg := TRegIniFile.Create( 'Software\MicroSoft\Windows\CurrentVersion\Explorer'); // Используйте следующую строчку кода для создания ярлыка на рабочем столе Directory := MyReg.ReadString('Shell Folders','Desktop',''); // Используйте следующие три строчки для создания ярлыка в главном меню // Directory := MyReg.ReadString('Shell Folders','Start Menu','')+ // '\Рулез!'; // CreateDir(Directory); WFileName := Directory+'\FooBar.lnk'; MyPFile.Save(PWChar(WFileName),False); MyReg.Free; end; end. |
[000080]