mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 05:55:48 +00:00
Set the executable's directory as working directory, not the link's...
svn path=/trunk/; revision=27598
This commit is contained in:
parent
d9e6b3b8eb
commit
9dfc7b707b
1 changed files with 38 additions and 29 deletions
|
@ -164,24 +164,14 @@ CreateShortcut(int csidl, LPCTSTR folder, UINT nIdName, LPCTSTR command, UINT nI
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!SHGetSpecialFolderPath(0, path, csidl, TRUE))
|
if (ExpandEnvironmentStrings(command,
|
||||||
return FALSE;
|
path,
|
||||||
|
sizeof(path) / sizeof(path[0])) == 0)
|
||||||
if (folder)
|
|
||||||
{
|
{
|
||||||
p = PathAddBackslash(p);
|
_tcscpy(path,
|
||||||
_tcscpy(p, folder);
|
command);
|
||||||
}
|
}
|
||||||
|
|
||||||
p = PathAddBackslash(p);
|
|
||||||
|
|
||||||
if (!LoadString(hDllInstance, nIdName, name, sizeof(name)/sizeof(name[0])))
|
|
||||||
return FALSE;
|
|
||||||
_tcscpy(p, name);
|
|
||||||
|
|
||||||
if (!LoadString(hDllInstance, nIdTitle, title, sizeof(title)/sizeof(title[0])))
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
dwLen = GetFullPathName(path,
|
dwLen = GetFullPathName(path,
|
||||||
sizeof(szWorkingDir) / sizeof(szWorkingDir[0]),
|
sizeof(szWorkingDir) / sizeof(szWorkingDir[0]),
|
||||||
szWorkingDir,
|
szWorkingDir,
|
||||||
|
@ -206,6 +196,25 @@ CreateShortcut(int csidl, LPCTSTR folder, UINT nIdName, LPCTSTR command, UINT nI
|
||||||
lpWorkingDir = szWorkingDir;
|
lpWorkingDir = szWorkingDir;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (!SHGetSpecialFolderPath(0, path, csidl, TRUE))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
if (folder)
|
||||||
|
{
|
||||||
|
p = PathAddBackslash(p);
|
||||||
|
_tcscpy(p, folder);
|
||||||
|
}
|
||||||
|
|
||||||
|
p = PathAddBackslash(p);
|
||||||
|
|
||||||
|
if (!LoadString(hDllInstance, nIdName, name, sizeof(name)/sizeof(name[0])))
|
||||||
|
return FALSE;
|
||||||
|
_tcscpy(p, name);
|
||||||
|
|
||||||
|
if (!LoadString(hDllInstance, nIdTitle, title, sizeof(title)/sizeof(title[0])))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
return SUCCEEDED(CreateShellLink(path, command, _T(""), lpWorkingDir, NULL, 0, title));
|
return SUCCEEDED(CreateShellLink(path, command, _T(""), lpWorkingDir, NULL, 0, title));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -585,33 +594,33 @@ CreateShortcuts(VOID)
|
||||||
CoInitialize(NULL);
|
CoInitialize(NULL);
|
||||||
|
|
||||||
/* Create desktop shortcuts */
|
/* Create desktop shortcuts */
|
||||||
CreateShortcut(CSIDL_DESKTOP, NULL, IDS_SHORT_CMD, _T("cmd.exe"), IDS_CMT_CMD, FALSE);
|
CreateShortcut(CSIDL_DESKTOP, NULL, IDS_SHORT_CMD, _T("%SystemRoot%\\system32\\cmd.exe"), IDS_CMT_CMD, FALSE);
|
||||||
|
|
||||||
/* Create program startmenu shortcuts */
|
/* Create program startmenu shortcuts */
|
||||||
CreateShortcut(CSIDL_PROGRAMS, NULL, IDS_SHORT_EXPLORER, _T("explorer.exe"), IDS_CMT_EXPLORER, FALSE);
|
CreateShortcut(CSIDL_PROGRAMS, NULL, IDS_SHORT_EXPLORER, _T("%SystemRoot%\\explorer.exe"), IDS_CMT_EXPLORER, FALSE);
|
||||||
CreateShortcut(CSIDL_PROGRAMS, NULL, IDS_SHORT_DOWNLOADER, _T("downloader.exe"), IDS_CMT_DOWNLOADER, TRUE);
|
CreateShortcut(CSIDL_PROGRAMS, NULL, IDS_SHORT_DOWNLOADER, _T("%SystemRoot%\\system32\\downloader.exe"), IDS_CMT_DOWNLOADER, TRUE);
|
||||||
CreateShortcut(CSIDL_PROGRAMS, NULL, IDS_SHORT_FIREFOX, _T("getfirefox.exe"), IDS_CMT_GETFIREFOX, TRUE);
|
CreateShortcut(CSIDL_PROGRAMS, NULL, IDS_SHORT_FIREFOX, _T("%SystemRoot%\\system32\\getfirefox.exe"), IDS_CMT_GETFIREFOX, TRUE);
|
||||||
|
|
||||||
/* Create administrative tools startmenu shortcuts */
|
/* Create administrative tools startmenu shortcuts */
|
||||||
CreateShortcut(CSIDL_COMMON_ADMINTOOLS, NULL, IDS_SHORT_SERVICE, _T("servman.exe"), IDS_CMT_SERVMAN, FALSE);
|
CreateShortcut(CSIDL_COMMON_ADMINTOOLS, NULL, IDS_SHORT_SERVICE, _T("%SystemRoot%\\system32\\servman.exe"), IDS_CMT_SERVMAN, FALSE);
|
||||||
CreateShortcut(CSIDL_COMMON_ADMINTOOLS, NULL, IDS_SHORT_DEVICE, _T("devmgmt.exe"), IDS_CMT_DEVMGMT, FALSE);
|
CreateShortcut(CSIDL_COMMON_ADMINTOOLS, NULL, IDS_SHORT_DEVICE, _T("%SystemRoot%\\system32\\devmgmt.exe"), IDS_CMT_DEVMGMT, FALSE);
|
||||||
|
|
||||||
/* Create and fill Accessories subfolder */
|
/* Create and fill Accessories subfolder */
|
||||||
if (CreateShortcutFolder(CSIDL_PROGRAMS, IDS_ACCESSORIES, szFolder, sizeof(szFolder)/sizeof(szFolder[0])))
|
if (CreateShortcutFolder(CSIDL_PROGRAMS, IDS_ACCESSORIES, szFolder, sizeof(szFolder)/sizeof(szFolder[0])))
|
||||||
{
|
{
|
||||||
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_CALC, _T("calc.exe"), IDS_CMT_CALC, FALSE);
|
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_CALC, _T("%SystemRoot%\\system32\\calc.exe"), IDS_CMT_CALC, FALSE);
|
||||||
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_CMD, _T("cmd.exe"), IDS_CMT_CMD, FALSE);
|
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_CMD, _T("%SystemRoot%\\system32\\cmd.exe"), IDS_CMT_CMD, FALSE);
|
||||||
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_NOTEPAD, _T("notepad.exe"), IDS_CMT_NOTEPAD, FALSE);
|
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_NOTEPAD, _T("%SystemRoot%\\system32\\notepad.exe"), IDS_CMT_NOTEPAD, FALSE);
|
||||||
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_REGEDIT, _T("regedit.exe"), IDS_CMT_REGEDIT, FALSE);
|
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_REGEDIT, _T("%SystemRoot%\\regedit.exe"), IDS_CMT_REGEDIT, FALSE);
|
||||||
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_WORDPAD, _T("wordpad.exe"), IDS_CMT_WORDPAD, FALSE);
|
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_WORDPAD, _T("%SystemRoot%\\system32\\wordpad.exe"), IDS_CMT_WORDPAD, FALSE);
|
||||||
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_SNAP, _T("screenshot.exe"), IDS_CMT_SCREENSHOT, TRUE);
|
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_SNAP, _T("%SystemRoot%\\system32\\screenshot.exe"), IDS_CMT_SCREENSHOT, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Create Games subfolder and fill if the exe is available */
|
/* Create Games subfolder and fill if the exe is available */
|
||||||
if (CreateShortcutFolder(CSIDL_PROGRAMS, IDS_GAMES, szFolder, sizeof(szFolder)/sizeof(szFolder[0])))
|
if (CreateShortcutFolder(CSIDL_PROGRAMS, IDS_GAMES, szFolder, sizeof(szFolder)/sizeof(szFolder[0])))
|
||||||
{
|
{
|
||||||
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_SOLITAIRE, _T("sol.exe"), IDS_CMT_SOLITAIRE, FALSE);
|
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_SOLITAIRE, _T("%SystemRoot%\\system32\\sol.exe"), IDS_CMT_SOLITAIRE, FALSE);
|
||||||
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_WINEMINE, _T("winemine.exe"), IDS_CMT_WINEMINE, FALSE);
|
CreateShortcut(CSIDL_PROGRAMS, szFolder, IDS_SHORT_WINEMINE, _T("%SystemRoot%\\system32\\winemine.exe"), IDS_CMT_WINEMINE, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
CoUninitialize();
|
CoUninitialize();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue