VC创建快捷方式
2014-04-15 15:59
363 查看
分类: C、VC/MFC
总结主要有二个操作:新建和解析主要用到的是COM组件。IShellLink和IPersistFile需要添加的头函数shobjidl.hIPersistFile主要用到两个成员函数:
1、Save。保存内容到文件中去
2、Load。读取Load的函数原型
HRESULT Load( LPCOLSTR pszFileName, //快捷方式的文件名,应该是ANSI字符
DWORD dwMode //读取方式);
dwMode可取如下值:
STGM_READ:只读
STGM_WRITE:只写
STGM_READWRITE:读写
IShellLink主要成员:
1、GetArguments:获得参数信息
2、GetDescription:获得描述信息(备注行)
3、GetHotkey:获得快捷键
4、GetIconLocation:获得图标
5、GetIDList:获得快捷方式的目标对象的item identifier list (Windows外壳中的每个对象如文件,目录和打印机等都有唯一的item identifiler list)
6、GetPath: 获得快捷方式的目标文件或目录的全路径
7、GetShowCmd:获得快捷方式的运行方式,比如常规窗口,最大化
8、GetWorkingDirectory:获得工作目录
9、Resolve:按照一定的搜索规则试图获得目标对象,即使目标对象已经被删除或移动,重命名下面是对应信息的设置方法
10、SetArguments
11、SetDescription
12、SetHotkey
13、SetIconLocation
14、SetIDList
15、SetPath
16、SetRelativePat
17、SetShowCmd
18、SetWorkingDirectory
常见操作:
一、初始化COM接口
二、创建IShellLink对象
三、从IShellLink对象中获取IPersistFile对象接口
四、操作IShellLink对象
五、释放IPersistFile对象接口
六、释放IShellLink对象
七、释放COM接口示例代码:
实例代码:
[cpp] view
plaincopyprint?
//////////////////////////////////////////////////////////////////////////
// 在桌面上创建快捷方式
#include <shlobj.h>
#include <atlbase.h>
int main()
{
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字符串组成
LPCSTR lpstr;
lpstr = "C://Documents and Settings//hjs//桌面//vc创建的快捷方式.lnk";
MultiByteToWideChar( CP_ACP, 0,lpstr, -1, wsz, MAX_PATH);
//保存快捷方式
ppf->Save(wsz,TRUE);
}
}
//释放IPersistFile接口
ppf->Release();
//释放IShellLink对象
pLink->Release();
//释放COM接口
::CoUninitialize();
return 0;
}
相关文章推荐
- VC 为程序创建快捷方式的详细讲解
- VC创建快捷方式
- VC创建桌面快捷方式-VC6.0/VS2010均通过
- vc 创建快捷方式
- VC MFC 创建桌面快捷方式
- vc 创建桌面快捷方式
- VC 为程序创建快捷方式的详细讲解
- VC 为程序创建快捷方式的详细讲解
- VC 为程序创建快捷方式的详细讲解
- VC学习资料收集(24):在应用程序中创建快捷方式
- VC 为程序创建快捷方式的详细讲解
- VC创建快捷方式
- VC学习资料收集(23):创建快捷方式
- vc++ windows 快速启动栏创建快捷方式
- VC创建快捷方式
- VC中创建快捷方式
- VC 创建快捷方式和得到桌面路径
- VC 为程序创建快捷方式的详细讲解
- VC++创建快捷方式
- VC 创建带有管理员权限的快捷方式