#define APP_INSTALL_PATH_NAME TEXT("Sample//Sample.exe")
#define APP_INSTALL_PATH_NAME_LNK TEXT("Sample.lnk")
TCHAR szShortcut[MAX_PATH] = {0};
TCHAR szStartup[MAX_PATH] = {0};
TCHAR szProgramFile[MAX_PATH] = {0};
TCHAR szFilePathName[MAX_PATH] = {0};
TCHAR szLikPathName[MAX_PATH] = {0};
DWORD dwShortCutLen = sizeof(TCHAR)*MAX_PATH;
//獲得Program files下目錄
SHGetSpecialFolderPath(NULL,szProgramFile,CSIDL_PROGRAM_FILES,FALSE);
//" -h"表示建立快速鍵後所帶的參數
wsprintf(szFilePathName,TEXT("/"%s//%s/" -h"),szProgramFile,APP_INSTALL_PATH_NAME);
例1:
//獲得快速鍵位置(Startup)
SHGetSpecialFolderPath(NULL, szStartup, CSIDL_STARTUP, 0);
wsprintf(szLikPathName, TEXT("%s//%s"), szStartup, APP_INSTALL_PATH_NAME_LNK);
SHCreateShortcutEx(szLikPathName, szFilePathName,szShortcut,&dwShortCutLen);
例2:
//獲得快速鍵位置(Programs)
LangID = GetUserDefaultUILanguage();
SHGetSpecialFolderPath(NULL, szProgramPath, CSIDL_PROGRAMS, 0);
if(PRIMARYLANGID(LangID) == LANG_CHINESE)
{
//載入中文
LoadString(g_hInst,IDS_SHORTCUT_NAME_CHS,szLoadString,sizeof(TCHAR)*MAX_PATH);
}
else
{
//載入英文
LoadString(g_hInst,IDS_SHORTCUT_NAME_ENG,szLoadString,sizeof(TCHAR)*MAX_PATH);
}
ZeroMemory(szLikPathName, sizeof(TCHAR)*MAX_PATH);
wsprintf(szLikPathName, TEXT("%s//%s"), szProgramPath,szLoadString);
SHCreateShortcut(szLikPathName, szFilePathName);
本例建立的是開機啟動並帶有參數並實現多語系載入的快速鍵方法