欢迎来到山村网

C++ 创建桌面快捷方式 开始菜单的实现代码

2019-03-02 10:01:55浏览:753 来源:山村网   
核心摘要:这篇文章介绍了C++ 创建桌面快捷方式,开始菜单的实现代码,需要的朋友可以参考一下复制代码 代码如下:void CInstall_ProgressDlg
这篇文章介绍了C++ 创建桌面快捷方式,开始菜单的实现代码,需要的朋友可以参考一下复制代码 代码如下:
void CInstall_ProgressDlg::CreateShortCut(CString cslinkPath, CString csExePath, CString csIconPath)
{
HRESULT hres;
hres = ::CoInitialize(NULL);
if(S_OK == hres)
{
//delete old link
CFileFind cfind;
if(cfind.FindFile(cslinkPath)){
CFile::Remove(cslinkPath);
}

IShelllink * pShelllink ;
hres = ::CoCreateInstance( CLSID_Shelllink, NULL,CLSCTX_INPROC_SERVER, IID_IShelllink,(void **)&pShelllink);
if( SUCCEEDED( hres))
{
pShelllink -> SetPath(csExePath);
if(PathFileExists(csIconPath))
pShelllink -> SetIconLocation(csIconPath, 0);
pShelllink -> SetHotkey( MAKEWORd( 'R', HOTKEYF_SHIFT | HOTKEYF_CONTROL));
CString csWorkingDir;
csWorkingDir = csExePath.Left(2);
csWorkingDir.Append(FILE_SEPARATOR);
TRACE_CS(csWorkingDir);
pShelllink -> SetWorkingDirectory(csWorkingDir);

IPersistFile *pPersistFile;
hres = pShelllink -> QueryInterface( IID_IPersistFile, (void **)&pPersistFile) ;
if( SUCCEEDED(hres))
{
hres = pPersistFile -> Save(cslinkPath, TRUE);
pPersistFile -> Release();
}
pShelllink -> Release();
}
::CoUninitialize();
}
}

复制代码 代码如下:


void CInstall_ProgressDlg::CreateStartMenu()
{
TCHAR chStartupFolder[MAX_PATH];

SHGetSpecialFolderPath(this->GetSafeHwnd(), chStartupFolder,CSIDL_PROGRAMS,FALSE);
CString csStartupFolder = chStartupFolder;
csStartupFolder.Append(FILE_SEPARATOR);
csStartupFolder.Append(FOLDER_APP_NAME);
if(!PathFileExists(csStartupFolder)){
g_InstallHelper.CreateInstallFolder(csStartupFolder);
}

CString csInstallPath;
csInstallPath = g_InstallInfo.chInstallPath;

CString csEXEFilePath;
csEXEFilePath = csInstallPath;
csEXEFilePath.Append(FILE_SEPARATOR);
csEXEFilePath.Append(FILE_APP_NAME);
CString csUnExeFilePath;
csUnExeFilePath = csInstallPath;
csUnExeFilePath.Append(FILE_SEPARATOR);
csUnExeFilePath.Append(FILE_UNINSTALL_NAME);
CString cslinkFileName = csStartupFolder;
cslinkFileName.Append(FILE_SEPARATOR);
cslinkFileName.Append(link_NAME);
cslinkFileName.Append(link_EXT);
CString csUnlinkFileName = csStartupFolder;
csUnlinkFileName.Append(FILE_SEPARATOR);
csUnlinkFileName.Append(link_UNINSTALL_NAME);
csUnlinkFileName.Append(link_EXT);

//get icon path
CString csExeIconPath;
csExeIconPath = csInstallPath;
csExeIconPath.Append(FILE_SEPARATOR);
csExeIconPath.Append(ICON_APP_EXE_NAME);
CString csUnExeIconPath;
csUnExeIconPath = csInstallPath;
csUnExeIconPath.Append(FILE_SEPARATOR);
csUnExeIconPath.Append(ICON_UNINSTALL_EXE_NAME);

TRACE_CS(cslinkFileName);
TRACE_CS(csEXEFilePath);
TRACE_CS(csExeIconPath);
TRACE_CS(csUnlinkFileName);
TRACE_CS(csUnExeFilePath);
TRACE_CS(csUnExeIconPath);
CreateShortCut(cslinkFileName, csEXEFilePath, csExeIconPath);
CreateShortCut(csUnlinkFileName, csUnExeFilePath, csUnExeIconPath);
}

(责任编辑:豆豆)
下一篇:

c#中判断字符串是不是数字或字母的方法

上一篇:

C语言数组指针的小例子

  • 信息二维码

    手机看新闻

  • 分享到
打赏
免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 xfptx@outlook.com