PDA

View Full Version : سوالی درباره shortcutفایل exe



moslam
جمعه 11 خرداد 1386, 02:02 صبح
سلام
اگر می خواهیم shortcutفایل exe در منوی Start Menu\Programsقرار بگیر د چه کدی را مینویسیم(آیا کدی را که برای ویندوز xp تایپ میکنیم با دیگر ویندوزها فرق می کند)

اگر می خواهیم shortcutفایل exeدر Desktop قرار بگیر د چه کدی را مینویسیم

اگر می خواهیم shortcutفایل exeدر کنار ساعت پایین قرار بگیر د چه کدی را مینویسیم

Mahmood_M
جمعه 11 خرداد 1386, 02:31 صبح
سلام

اگر می خواهیم shortcutفایل exe در منوی Start Menu\Programsقرار بگیر د چه کدی را مینویسیم(آیا کدی را که برای ویندوز xp تایپ میکنیم با دیگر ویندوزها فرق می کند)


function CreateStartMenuShortcut(GroupName: string;
FileName: string; Parameters: string; linkname: string): string;
var
MyObject: IUnknown;
MySLink: IShellLink;
MyPFile: IPersistFile;
Directory: string;
WFileName: WideString;
// (rom) TRegIni is silly use TRegistry
MyReg: TRegIniFile;
begin
MyObject := CreateComObject(CLSID_ShellLink);
MySLink := MyObject as IShellLink;
MyPFile := MyObject as IPersistFile;
with MySLink do
begin
SetArguments(PChar(Parameters));
SetPath(PChar(FileName));
SetWorkingDirectory(PChar(ExtractFilePath(FileName )));
end;
MyReg := TRegIniFile.Create(RC_ExplorerKey);
if GroupName = '' then
Directory := MyReg.ReadString('Shell Folders', 'Programs', '')
else
Directory := MyReg.ReadString('Shell Folders', 'Programs', '') + '\' + GroupName;
ForceDirectories(Directory);
WFileName := Directory + '\' + linkname + '.lnk';
MyPFile.Save(PWChar(WFileName), False);
MyReg.Free;
Result := WFileName;
end;


اگر می خواهیم shortcutفایل exeدر Desktop قرار بگیر د چه کدی را مینویسیم



function CreateDesktopShortcut(FileName: string;
Parameters: string; linkname: string): string;
var
MyObject: IUnknown;
MySLink: IShellLink;
MyPFile: IPersistFile;
Directory: string;
WFileName: WideString;
MyReg: TRegIniFile;
begin
MyObject := CreateComObject(CLSID_ShellLink);
MySLink := MyObject as IShellLink;
MyPFile := MyObject as IPersistFile;
with MySLink do
begin
SetArguments(PChar(Parameters));
SetPath(PChar(FileName));
SetWorkingDirectory(PChar(ExtractFilePath(FileName )));
end;
MyReg := TRegIniFile.Create(RC_ExplorerKey);
Directory := MyReg.ReadString('Shell Folders', 'Desktop', '');
WFileName := Directory + '\' + linkname + '.lnk';
MyPFile.Save(PWChar(WFileName), False);
Result := WFileName;
MyReg.Free;
end;

توجه :
دو تابع بالا از ثابتی به نام RC_ExplorerKey استفاده می کنند که باید به صورت و با مقدار زیر تعریف بشه :

Resourcestring
RC_ExplorerKey = 'Software\Microsoft\Windows\CurrentVersion\Explore r';



اگر می خواهیم shortcutفایل exeدر کنار ساعت پایین قرار بگیر د چه کدی را مینویسیم
در این مورد زیاد بحث شده ، عبارت System Tray رو در سایت جستجو کنید ...

موفق باشید ...

Hamid_PaK
جمعه 11 خرداد 1386, 04:44 صبح
`ShlObj` رو هم به یوززهای یونیت باید اضافه کنید.

یا حق ...

moslam
جمعه 11 خرداد 1386, 21:20 عصر
متشکرم متشکرم

moslam
جمعه 11 خرداد 1386, 21:22 عصر
سلام
متشکرم از جواب
اگر ممکن بیشتر توضیح دهید واین کدها در کدام فرم وEvantنوشته می شود

Hamid_PaK
جمعه 11 خرداد 1386, 22:21 عصر
یه مثال کامل ضمیمه کردم.
جستجو کنید سریعتر به نتیجه خواهید رسید.

یا حق ...