获取快捷方式的目标文件,并删除无效快捷方式和目标文件不在系统盘的快捷方式
来源:互联网 发布:长安app软件下载 编辑:程序博客网 时间:2024/05/22 06:42
// 获取快捷方式的目标文件,并删除无效快捷方式和目标文件不在系统盘的快捷方式BOOL GetExePath(LPCTSTR lnkPath, LPTSTR exePath, LPTSTR Arguments){DWORD dwAttribute = ::GetFileAttributes(lnkPath);if(dwAttribute & FILE_ATTRIBUTE_READONLY){dwAttribute &= ~FILE_ATTRIBUTE_READONLY;SetFileAttributes(lnkPath,dwAttribute);}HRESULT hr = CoInitialize(NULL);if(SUCCEEDED(hr)){IShellLink *pisl;hr = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void**)&pisl);if(SUCCEEDED(hr)){IPersistFile * ppf ;HRESULT hr = pisl->QueryInterface(IID_IPersistFile, (LPVOID*)&ppf);if(SUCCEEDED(hr)){hr = ppf->Load(lnkPath, STGM_READWRITE);if(S_OK != hr)// 快捷方式无效(快捷方式文件中的内容无效),删除快捷方式{DeleteFile(lnkPath);pisl->Release();ppf->Release();CoUninitialize();return FALSE;}WIN32_FIND_DATA wfd;hr = pisl->GetPath(exePath, MAX_PATH, &wfd, 0);if(S_OK != hr)// 快捷方式无效(快捷方式文件中无内容,即为空文件),删除快捷方式{DeleteFile(lnkPath);pisl->Release();ppf->Release();CoUninitialize();return FALSE;}if(!PathFileExists(exePath))// 快捷方式指向的目标文件不存在,删除快捷方式{DeleteFile(lnkPath);pisl->Release();ppf->Release();CoUninitialize();return FALSE;}CString strSystemDrive;if(!GetSystemDrive(strSystemDrive)){pisl->Release();ppf->Release();CoUninitialize();return FALSE;}CString strExePath = exePath;if(strExePath.Left(1).MakeUpper() != strSystemDrive.Left(1).MakeUpper())// 快捷方式指向的目标文件不在系统盘,删除快捷方式{DeleteFile(lnkPath);pisl->Release();ppf->Release();CoUninitialize();return FALSE;}pisl->GetArguments(Arguments, MAX_PATH);pisl->Release();ppf->Release();}}CoUninitialize();}return TRUE;}
0 0
- 获取快捷方式的目标文件,并删除无效快捷方式和目标文件不在系统盘的快捷方式
- 外壳扩展创建快捷方式和获取快捷方式的目标对象
- 获取快捷方式的目标和参数
- 获取快捷方式的目标和参数
- VC获取快捷方式的目标和参数
- C#如何获取快捷方式指向的目标文件
- C#如何获取快捷方式指向的目标文件
- 通过LNK文件(快捷方式)解析出目标文件的路径
- 通过桌面快捷方式获取的目标路径
- 获取快捷方式的文件路径
- 获取快捷方式的文件路径
- 获取快捷方式的文件路径
- 一些快捷方式没有目标路径的原因
- VB如何读取快捷方式的目标路径
- 快捷方式查找目标失效的一种解决方法
- VC获取快捷方式的文件路径
- 删除快捷方式的箭头
- 删除桌面上的快捷方式
- [Leetcode] #46#47 Permutations I & II
- 在linux下执行定时任务运行一个java程序
- 咖啡杯
- Ajax 应用程序中的流程
- Ubuntu安装Android studio+快捷方式
- 获取快捷方式的目标文件,并删除无效快捷方式和目标文件不在系统盘的快捷方式
- PHP安装MongoDB驱动
- Lua中的字符串函数库
- c++线程安全的队列
- 51nod 1257 背包问题 V3
- 【Markdown】使用锚点在页面之间跳转
- java基础知识(2)
- 单例模式--JAVA
- js打印页面指定内容