View Single Post
  #1  
Old 24-04-2020, 07:14
Cesar82's Avatar
Cesar82 Cesar82 is offline
Registered User
 
Join Date: May 2011
Location: Brazil
Posts: 1,074
Thanks: 1,814
Thanked 2,304 Times in 787 Posts
Cesar82 is on a distinguished road
Quote:
Originally Posted by KaktoR View Post
I want to create shortcuts with CreateShellLink function, it works for {commondesktop} but not for {group} nor {userstartmenu} / {commonstartmenu}. Why?

I read the information directly from INI file.
Post a usage example [Executable] section.
Perhaps because the folder where you are going to create the shortcut does not exist.
Perhaps because the executable does not exist (But I think it should create such randomness).
The path to Exe must be expanded if you use constants like {app}...
If the shortcut destination contains a subfolder, create the folder before calling CreateShellLink using:
ForceDirectories(ExpandConstant( FolderName ));
Code:
if IniKeyNotEmpty('Executable', 'Exe') then
begin
  CreateShellLink(
  ExpandConstant('{commonstartmenu}\' + GetIniString('Executable', 'ExeName', '', ExpandConstant('{tmp}\Settings.ini')) + '.lnk'),
  GetIniString('Executable','ExeName','',ExpandConstant('{tmp}\Settings.ini')),
  ExpandConstant(GetIniString('Executable','Exe','',ExpandConstant('{tmp}\Settings.ini'))),
  GetIniString('Executable','ExeParam','',ExpandConstant('{tmp}\Settings.ini')),
  '',
  '',
  0,
  SW_SHOWNORMAL
  );
end;
Here created correctly.
Reply With Quote
Sponsored Links