VC编程之VC操作Windows快捷方式(自己总结)
小标 2019-05-07 来源 : 阅读 2813 评论 0

摘要:本文主要向大家介绍了VC编程之VC操作Windows快捷方式(自己总结),通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。

本文主要向大家介绍了VC编程之VC操作Windows快捷方式(自己总结),通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。

VC编程之VC操作Windows快捷方式(自己总结)

VC操作Windows快捷方式(自己总结)

二个操作:新建和解析

主要用到的是COM组件。IShellLink和IPersistFile

需要添加的头函数
shobjidl.h

IPersistFile主要用到两个成员函数:
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接口

示例代码:
/*
注:在桌面上创建快捷方式,快捷方式的名称为""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/MFC的学习,希望对VC/MFC有兴趣的朋友有所帮助。了解更多内容,请关注职坐标编程语言VC/MFC频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程