设置快捷方式
来源:互联网 发布:海岛奇兵英雄升级数据 编辑:程序博客网 时间:2024/05/16 01:41
//创建快捷方式 //快捷方式的目标应用程序名 //快捷方式的数据文件名(*.lnk)
static BOOL CreateLink(LPTSTR szPath, LPTSTR szLink, bool flag)
{
HRESULT hres ;
IShellLink * psl ;
IPersistFile* ppf ;
TCHAR wsz[ MAX_PATH] ;
CoInitialize(NULL);
//创建一个IShellLink实例
hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void **)&psl);
if (FAILED(hres))
{
CString strErr;
strErr.Format(_T("CoCreateInstance fail code=%ld"), hres);
::MessageBox(NULL, strErr, 0, 0);
return FALSE ;
}
//设置目标应用程序
psl->SetPath(szPath) ;
if ( flag)
{
psl->SetArguments(_T(" /MiniIcon 1"));//设置命令行参数
CString mzdPath = szPath ;
DWORD dwPos = mzdPath.ReverseFind('\\');
mzdPath = mzdPath.Left(dwPos + 1) ;
mzdPath += _T("MZDhttpsvc.ico") ;
HRESULT hress = psl->SetIconLocation(mzdPath,0) ;//图标的位置设置
}
//设置快捷键(此处设为Shift+Ctrl+'R')
//psl -> SetHotkey( MAKEWORD( 'R', HOTKEYF_SHIFT |HOTKEYF_CONTROL)) ;
//从IShellLink获取其IPersistFile接口
//用于保存快捷方式的数据文件 (*.lnk)
hres = psl->QueryInterface( IID_IPersistFile,(void**)&ppf) ;
if (FAILED( hres))
{
CString strErr;
strErr.Format(_T("QueryInterface fail code=%ld"), hres);
::MessageBox(NULL, strErr, 0, 0);
return FALSE ;
}
#ifndef _UNICODE
// 确保数据文件名为ANSI格式
MultiByteToWideChar( CP_ACP, 0, szLink, -1, wsz, MAX_PATH) ;
#else
lstrcpy(wsz, szLink);
#endif
//调用IPersist:Save
//保存快捷方式的数据文件 (*.lnk)
hres = ppf->Save(wsz, STGM_READWRITE);
if (FAILED(hres))
{
CString strErr;
strErr.Format(_T("Save fail code=%ld"), hres);
::MessageBox(NULL, strErr, 0, 0);
}
//释放IPersistFile和IShellLink接口
ppf -> Release( ) ;
psl -> Release( ) ;
return TRUE;
}
static BOOL CreateLink(LPTSTR szPath, LPTSTR szLink, bool flag)
{
HRESULT hres ;
IShellLink * psl ;
IPersistFile* ppf ;
TCHAR wsz[ MAX_PATH] ;
CoInitialize(NULL);
//创建一个IShellLink实例
hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void **)&psl);
if (FAILED(hres))
{
CString strErr;
strErr.Format(_T("CoCreateInstance fail code=%ld"), hres);
::MessageBox(NULL, strErr, 0, 0);
return FALSE ;
}
//设置目标应用程序
psl->SetPath(szPath) ;
if ( flag)
{
psl->SetArguments(_T(" /MiniIcon 1"));//设置命令行参数
CString mzdPath = szPath ;
DWORD dwPos = mzdPath.ReverseFind('\\');
mzdPath = mzdPath.Left(dwPos + 1) ;
mzdPath += _T("MZDhttpsvc.ico") ;
HRESULT hress = psl->SetIconLocation(mzdPath,0) ;//图标的位置设置
}
//设置快捷键(此处设为Shift+Ctrl+'R')
//psl -> SetHotkey( MAKEWORD( 'R', HOTKEYF_SHIFT |HOTKEYF_CONTROL)) ;
//从IShellLink获取其IPersistFile接口
//用于保存快捷方式的数据文件 (*.lnk)
hres = psl->QueryInterface( IID_IPersistFile,(void**)&ppf) ;
if (FAILED( hres))
{
CString strErr;
strErr.Format(_T("QueryInterface fail code=%ld"), hres);
::MessageBox(NULL, strErr, 0, 0);
return FALSE ;
}
#ifndef _UNICODE
// 确保数据文件名为ANSI格式
MultiByteToWideChar( CP_ACP, 0, szLink, -1, wsz, MAX_PATH) ;
#else
lstrcpy(wsz, szLink);
#endif
//调用IPersist:Save
//保存快捷方式的数据文件 (*.lnk)
hres = ppf->Save(wsz, STGM_READWRITE);
if (FAILED(hres))
{
CString strErr;
strErr.Format(_T("Save fail code=%ld"), hres);
::MessageBox(NULL, strErr, 0, 0);
}
//释放IPersistFile和IShellLink接口
ppf -> Release( ) ;
psl -> Release( ) ;
return TRUE;
}
- 设置快捷方式
- 设置桌面快捷方式
- 如何设置桌面快捷方式
- QT按键设置快捷方式
- PLSQL 快捷方式设置
- QT按键设置快捷方式
- SAPGUI 快捷方式设置密码
- myeclipse设置字体快捷方式
- 常用快捷方式及设置
- cmd设置快捷方式
- qt之设置快捷方式
- 设置环境变量快捷方式
- 设置快捷方式的快捷键不起作用
- Linux下设置桌面快捷方式
- WPF菜单快捷方式怎么设置
- Android: 设置模拟按键快捷方式
- 怎么设置AOPR桌面快捷方式
- 电脑锁屏 快捷方式设置
- js true and flase
- 第一次这么拼
- 应用程序只运行一个实例
- MySQL日期数据类型、时间类型
- 《悟透javascript》笔记
- 设置快捷方式
- nmon以及nmon analyser 教程
- Invocation of init method failed; nested exception is javax.naming.CommunicationException [Root exce
- c++ string 内存分配
- Matlab关于相位相关用于图像配准
- 论软件配置管理中人的因素
- MOSS 2007基础:部署自定义WebPart
- oracle commit 和 rollback
- Linux下Fork与Exec使用