VC获取快捷方式的目标和参数
2012-12-13 06:57
302 查看
一般情况操作如下:
一、初始化COM接口
二、创建IShellLink对象
三、从IShellLink对象中获取IPersistFile对象接口
四、操作IShellLink对象
五、释放IPersistFile对象接口
六、释放IShellLink对象
七、释放COM接口
示例代码:
/*
注:在桌面上创建快捷方式,快捷方式的名称为"VC创建的快捷方式",快捷方式指向应用程序"c:\aa.exe"
快捷方式的快捷键:无
快捷方式的工作目录:c:\
快捷方式的备注:VC写写捷方式
快捷方式的运行方式:常规窗口
*/
HRESULT hRet;
IShellLink *pLink; //IShellLink对象指针
IPersistFile * ppf; //IPersisFil对象指针
WCHAR wsz[MAX_PATH]; //定义Unicode字符串
//初始化COM库
hRet = ::CoInitialize(NULL);
if ( hRet != S_OK) //初始化COM库失败,直接返回
{
AfxMessageBox("初始化COM库失败");
return;
}
//创建IShellLink实例
hRet = ::CoCreateInstance(CLSID_ShellLink,NULL,CLSCTX_INPROC_SERVER,IID_IShellLink,(void**)&pLink);
if ( hRet != S_ok)
{
AfxMessageBox("创建IShellLink实例失败");
}
else
{
//创建IShellLink实例成功,继续操作
//从IShellLink对象中获取IPersistFile接口
hRet = pLink->QueryInterface(IID_IpersistFile,(void**)&ppf);
if ( hRet != S_OK)
{
AfxMessageBox("获取IPersistFile接口失败");
}
else
{
//获取接口成功,继续操作
//设置快捷方式中的程序路径
pLink->SetPath("c:\\aa.exe");
//设置快捷方式的工作目录
pLink->SetWorkingDirectory("c:\\");
//确保快捷方式路径由ANSI字符串组成
MultiByteToWideChar(
CP_ACP,
0,
"C:\\Documents and Settings\\hjs\\桌面\\vc创建的快捷方式.lnk",
-1,
wsz,
MAX_PATH
);
//保存快捷方式
ppf->Save(wsz,TRUE);
}
}
//释放IPersistFile接口
ppf->Release();
//释放IShellLink对象
pLink->Release();
//释放COM接口
::CoUninitialize();
//注:网上找到其他资料见楼下
一、初始化COM接口
二、创建IShellLink对象
三、从IShellLink对象中获取IPersistFile对象接口
四、操作IShellLink对象
五、释放IPersistFile对象接口
六、释放IShellLink对象
七、释放COM接口
示例代码:
/*
注:在桌面上创建快捷方式,快捷方式的名称为"VC创建的快捷方式",快捷方式指向应用程序"c:\aa.exe"
快捷方式的快捷键:无
快捷方式的工作目录:c:\
快捷方式的备注:VC写写捷方式
快捷方式的运行方式:常规窗口
*/
HRESULT hRet;
IShellLink *pLink; //IShellLink对象指针
IPersistFile * ppf; //IPersisFil对象指针
WCHAR wsz[MAX_PATH]; //定义Unicode字符串
//初始化COM库
hRet = ::CoInitialize(NULL);
if ( hRet != S_OK) //初始化COM库失败,直接返回
{
AfxMessageBox("初始化COM库失败");
return;
}
//创建IShellLink实例
hRet = ::CoCreateInstance(CLSID_ShellLink,NULL,CLSCTX_INPROC_SERVER,IID_IShellLink,(void**)&pLink);
if ( hRet != S_ok)
{
AfxMessageBox("创建IShellLink实例失败");
}
else
{
//创建IShellLink实例成功,继续操作
//从IShellLink对象中获取IPersistFile接口
hRet = pLink->QueryInterface(IID_IpersistFile,(void**)&ppf);
if ( hRet != S_OK)
{
AfxMessageBox("获取IPersistFile接口失败");
}
else
{
//获取接口成功,继续操作
//设置快捷方式中的程序路径
pLink->SetPath("c:\\aa.exe");
//设置快捷方式的工作目录
pLink->SetWorkingDirectory("c:\\");
//确保快捷方式路径由ANSI字符串组成
MultiByteToWideChar(
CP_ACP,
0,
"C:\\Documents and Settings\\hjs\\桌面\\vc创建的快捷方式.lnk",
-1,
wsz,
MAX_PATH
);
//保存快捷方式
ppf->Save(wsz,TRUE);
}
}
//释放IPersistFile接口
ppf->Release();
//释放IShellLink对象
pLink->Release();
//释放COM接口
::CoUninitialize();
//注:网上找到其他资料见楼下
相关文章推荐
- 获取快捷方式的目标和参数
- 获取快捷方式的目标和参数
- vC++实现遍历桌面和快速启动里的所有快捷方式,判断快捷方式是不是浏览器,如果是则删除快捷方式参数
- vC++实现遍历桌面和快速启动里的所有快捷方式,判断快捷方式是不是浏览器,如果是则删除快捷方式参数
- 获取快捷方式里面的参数(BCB)
- 获取快捷方式的目标文件,并删除无效快捷方式和目标文件不在系统盘的快捷方式
- VC应用程序快捷方式带参数
- 外壳扩展创建快捷方式和获取快捷方式的目标对象
- 两种版本实现C#获取快捷方式目标路径的代码
- C#通过获取快捷方式指向目标的小示例触碰WMI
- VC应用程序快捷方式带参数
- C#如何获取快捷方式指向的目标文件
- C#如何获取快捷方式指向的目标文件
- VC应用程序快捷方式带参数应用程序
- C#如何获取快捷方式指向的目标文件
- VC获取快捷方式的文件路径
- C#如何获取快捷方式指向的目标文件
- VC 为程序创建快捷方式的详细讲解
- annotation的获取方式(类、方法、域、参数、构造器)
- 在ASP.NET中获取参数POST和GET方式提交的参数