Ez az egyszerű példaprogram bemutatja, hogy hogyan lehet új parancsikont létrehozni Windows 95/98/NT alatt az Asztalon illetve a StartMenüben. Egy új alkalmazásban helyezz egy TButton-t (Button1) a Form-ra. Kattints rá duplán erre a gombra, majd cseréld le az Unit1 kódját az alul található kódra. Ez a program a gomb megnyomására létrehoz egy új parancsikont az Asztalon és/vagy a StartMenüben. A parancsikonnak 'FooBar' lesz a neve és megnyitja az AUTOEXEC.BAT-ot a JEGYZETTÖMB-ben (Notepad), ha meghívják. (A program a 'Software\MicroSoft\Windows\CurrentVersion\Explorer\Shell Folders') (HKEY_CURRENT_USER) registry kulcs 'Desktop' és 'Start Menu' értékeit használja.) {---------------------------} { Parancsikon létrehozása } {---------------------------} 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'); // Használd a következő sort, ha az Asztalra akarod a // parancsikont létrehozni Directory := MyReg.ReadString('Shell Folders','Desktop',''); // Használd a következő három sort, ha a StartMenübe akarod // az új parancsikont létrehozni // Directory := MyReg.ReadString('Shell Folders','Start Menu','')+ // '\Whoa!'; // CreateDir(Directory); WFileName := Directory+'\FooBar.lnk'; MyPFile.Save(PWChar(WFileName),False); MyReg.Free; end; end.