VC创建快捷方式

网友投稿 716 2022-09-19

VC创建快捷方式

VC创建快捷方式

VC操作Windows快捷方式   总结主要有二个操作:新建和解析主要用到的是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接口示例代码:   实例代码: // // 在桌面上创建快捷方式 #include #include 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//桌面[url=file:vc]//vc[/url]创建的快捷方式.lnk"; MultiByteToWideChar( CP_ACP, 0,lpstr, -1, wsz, MAX_PATH); //保存快捷方式 ppf->Save(wsz,TRUE); } } //释放IPersistFile接口 ppf->Release(); //释放IShellLink对象 pLink->Release(); //释放COM接口 ::CoUninitialize(); return 0; }

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:windows下配置两个或多个Tomcat启动的方法
下一篇:Expression拼接
相关文章

 发表评论

暂时没有评论,来抢沙发吧~