Use COM methods and properties via the COM Automation objects support. So I translate a Delphi script to Inno Setup   section.And it work!    Here is a part of script in [code] section: [code] http://www.jrsoftware.org) There are someway to pin taskbar depend on one's choice. We can add a [task] section in InnoSetup. if one do not want to see the "task selected page"(like me ), the second way is to create a new CheckBox in Inno [code] section. And in the second way one need to control the CheckBox show or hide inprocedure CurPageChanged(). then call the function like:   zylPinAppToTaskbar('c:\window', 'notepad.exe');    An example project for Unicode Inno Setup is provided as download. The attachment "pintaskbar.zip" is the script. Unzip the file pintaskbar.zip,you can get two files named "PinShortcutOntoTaskbar-task.iss" and "PinShortcutOntoTaskbar-checkbox.iss". Please copy the *.iss files to the directory:  ./Inno Setup 5/Examples Then build the program and run PinTaskbar.exe.   References http://blog.csdn.net/ccrun/article/details/6906471 http://gallery.technet.microsoft.com/ScriptCenter/b66434f1-4b3f-4a94-8dc3-e406eb30b750/ http://www.codeproject.com/Tips/713824/Pin-a-shortcut-onto-the-Taskbar-or-Start-Menu    The following is the script of the second way, I think you can modify it to the first way. If the attachment was broken, copy the following script to a *.iss file.   ; -- PinShortcutOntoTaskbar.iss -- ; Pin a shortcut onto taskbar on Win7 & Win8. ; @author: Yaliang.Zhao <shuangxiang2008@google.com> ; @brief: I test is on 32-bit  Win7 & Win8, but ;         I thins it will work on X64 version. [setup] AppName=PinTaskbar AppVersion=1.0 OutputBaseFilename=PinTaskbar DefaultDirName={pf}\PinTaskbar OutputDir=./ DisableStartupPrompt=yes DisableReadyPage=yes [Files] Source: "MyProg.exe"; DestDir: "{app}" ;[Tasks] ;Name: pintaskbar; Description: "Pin shortcut onto taskbar" ;Following is how to use [Code] var PinTaskBarCheck : TNewCheckBox; //the function is work well on Unicode Inno Setup, //if Non Unicode Inno Setup, one need to modify, //and I think you can do it! //Inno use Win32 API function LoadLibrary(lpFilename : String) : LongInt; external 'LoadLibraryW@kernel32.dll stdcall delayload';  //if Non Unicode Inno Setup, use LoadLibraryA function FreeLibrary(hModule : LongInt) : BOOL; external 'FreeLibrary@kernel32.dll stdcall delayload'; function LoadString(hInstance:LongInt; uId:UINT; lpBuffer:String; nBufferMax:Integer) : Integer; external 'LoadStringW@user32.dll stdcall delayload';  //if Non Unicode Inno Setup, use LoadStringA //here is the function //@param strPath The App's directory, //@param strApp The App's name //@example zylPinAppToTaskbar('c:\window', 'notepad.exe'); procedure zylPinAppToTaskbar(strPath, strApp: string);  var    vShell, vFolder, vFolderItem, vItemVerbs: Variant;    vPath, vApp: Variant;    i: Integer;    sItem: String;     h: LongInt;   szPinName: String;   filenameEnd : Integer;   filename    : String;   strEnd    : String; begin   SetLength(szPinName, 255);   h := LoadLibrary(ExpandConstant('{sys}\Shell32.dll'));    LoadString(h, 5386, szPinName, 255);    FreeLibrary(h);    strEnd := #0;   filenameEnd := Pos(strEnd, szPinName);   filename := Copy(szPinName, 1, filenameEnd - 1);   if (Length(filename) > 0) then  //WinXp or lower, no pin taskbar function   begin     vShell := CreateOleObject('Shell.Application');      vPath := strPath;      vFolder := vShell.NameSpace(vPath);      vApp := strApp;      vFolderItem := vFolder.ParseName(vApp);      vItemVerbs := vFolderItem.Verbs;         for i := 1 to vItemVerbs.Count do    begin      sItem := vItemVerbs.Item(i).Name;     if (sItem = filename) then     begin       // 63 63 72 75 6E 2E 63 6F 6D        vItemVerbs.Item(i).DoIt;       break;      end;     end;    end; end;  //You can use zylPinAppToTaskbar like this procedure CurPageChanged(CurPageID: Integer); begin   //When Finished page is shown, call the function   //You can also call is when the "Finish" button clicked.   if CurPageID <> wpWelcome then     PinTaskBarCheck.hide   else begin     PinTaskBarCheck.show;   end;   if  CurPageID = wpFinished then    begin   //if IsTaskSelected('pintaskbar') then  //if Selected the [task]   //   zylPinAppToTaskbar(ExpandConstant('{app}'), 'MyProg.exe');   if PinTaskBarCheck.Checked then     zylPinAppToTaskbar(ExpandConstant('{app}'), 'MyProg.exe');   end; end; procedure InitializeWizard; begin   PinTaskBarCheck := TNewCheckBox.Create(WizardForm);    with PinTaskBarCheck do begin     Parent  := WizardForm;     Caption := 'Pin it onto taskbar';     Top     := 200;     Left    := 200;     Width   := ScaleY(200);     Height  := ScaleY(15);     State   := cbChecked;     //Hide;   end; end; pintaskbar.zip