ورود

View Full Version : ایجاد Shortcut با نوشتن Script در اینستال شیلد



jojo mohandes
یک شنبه 15 مرداد 1391, 10:17 صبح
با سلام
من میخوام از دیالوگ SelectFolder استفاده کنم برای انتخاب فولدر مورد نظر برای ایجاد Shortcut ، این دیالوگ رو اضافه کردم اما نمیدونم Script ی که ShortCut رو در این فولدر بسازه رو چی هست، سرچ کردم نتونستم پیدا کنم میشه راهنماییم کنید؟؟

jojo mohandes
سه شنبه 17 مرداد 1391, 08:45 صبح
سلام دوستان
دیروز بعد از نوشتن سوالم در سایت ونست به جواب برسم . از متد AddFolderIcon برای این کار استفاده کردم به به صورت زیرهستش
AddFolderIcon ( szProgramFolder, szItemName, szCommandLine, szWorkingDir, szIconPath, nIcon, szShortCutKey, nFlag );

برای مثال کد زیر هم گذاشتم براتون.

#define PROGRAM "C:\\Windows\\Notepad.exe"
#define PARAM "C:\\Windows\\Readme.txt"

// Include Ifx.h for built-in InstallScript function prototypes.
#include "Ifx.h"

export prototype ExFn_AddFolderIcon(HWND);

function ExFn_AddFolderIcon(hMSI)
STRING szProgramFolder, szItemName, szCommandLine, szWorkingDir;
STRING szShortCutKey, szProgram, szParam, szIconPath;
NUMBER nIcon;
begin

// Set up parameters for call to AddFolderIcon.
szProgramFolder = FOLDER_STARTMENU;
szItemName = "Notepad Example 1";
szProgram = PROGRAM;
szParam = PARAM;

LongPathToQuote (szProgram, TRUE);

LongPathToShortPath (szParam);

szCommandLine = szProgram + " " + szParam;
szWorkingDir = "";
szIconPath = "";
nIcon = 0;
szShortCutKey = "";

// Add a shortcut to the Start menu.
if (AddFolderIcon (szProgramFolder, szItemName, szCommandLine, szWorkingDir,
szIconPath, nIcon, szShortCutKey, REPLACE) < 0) then
MessageBox ("AddFolderIcon failed.", SEVERE);
else
SprintfBox (INFORMATION, "AddFolderIcon", "%s created successfully.",
szItemName);
endif;

szProgramFolder = "";
szItemName = "Notepad Example 2";

// Add a shortcut to the Programs menu.
if (AddFolderIcon (szProgramFolder, szItemName, szCommandLine, szWorkingDir,
szIconPath, nIcon, szShortCutKey, REPLACE) < 0) then
MessageBox ("AddFolderIcon failed.", SEVERE);
else
SprintfBox (INFORMATION, "AddFolderIcon", "%s created successfully.",
szItemName);
endif;

end;