Данный демо-проект демонстрирует простое решение для добавления ярлыков (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 beginSetArguments('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]