zoukankan      html  css  js  c++  java
  • 创建快捷方式

      1 BOOL CFileTool::CreateShortcuts(const CString *pFile,
      2                                 const CString *pPath, 
      3                                 const CString *pIconLocation, 
      4                                 const CString *pArguments, 
      5                                 const CString *pWorkingDirectory,
      6                                 WORD pHotkey, 
      7                                 int pShowCmd, 
      8                                 const PCIDLIST_ABSOLUTE pIDList, 
      9                                 const CString *pRelativePat, 
     10                                 const CString *pDescription)
     11 {
     12     // 入口参数检查
     13     if (NULL == pFile || NULL == pPath)
     14     {
     15         return FALSE;
     16     }
     17 
     18     HRESULT hRet;
     19     //初始化COM库
     20     hRet = ::CoInitialize(NULL);
     21     if (hRet != S_OK)  //初始化COM库失败,直接返回
     22     {
     23         return FALSE;
     24     }
     25 
     26     IShellLink *psl = NULL;        //IShellLink对象指针
     27     IPersistFile *ppf = NULL;    //IPersisFil对象指针
     28 
     29     //创建IShellLink实例
     30     hRet = ::CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, 
     31         IID_IShellLink, (void**)&psl);
     32     if (hRet != S_OK)  //初始化COM库失败,直接返回
     33     {
     34         //释放COM接口
     35         ::CoUninitialize();
     36         return FALSE;
     37     }
     38 
     39     //从IShellLink对象中获取IPersistFile接口
     40     hRet = psl->QueryInterface(IID_IPersistFile, (void**)&ppf);
     41     if (hRet != S_OK)  //初始化COM库失败,直接返回
     42     {
     43         //释放IShellLink对象
     44         psl->Release();
     45         //释放COM接口
     46         ::CoUninitialize();
     47         return FALSE;
     48     }
     49 
     50     //1.设置快捷方式中的程序路径
     51     psl->SetPath(*pPath);
     52 
     53     //2.设置图标
     54     if (pIconLocation != NULL && pIconLocation[0] != L'')
     55     {
     56         psl->SetIconLocation(*pIconLocation, 0);
     57     }
     58 
     59     //3.设置快捷方式的工作目录
     60     if (pWorkingDirectory != NULL && pWorkingDirectory[0] != L'')
     61     {
     62         psl->SetWorkingDirectory(*pWorkingDirectory);
     63     }
     64 
     65     //4.快捷键
     66     if (pHotkey > 0)
     67     {
     68         psl->SetHotkey(pHotkey);
     69     }
     70 
     71     //5.快捷方式的运行方式,比如常规窗口,最大化
     72     if (pShowCmd >= 0)
     73     {
     74         psl->SetShowCmd(pShowCmd);
     75     }
     76 
     77     //6.获得快捷方式的目标对象的item identifier list (Windows外壳中的每个对象如文件,目录和打印机等都有唯一的item identifiler list)
     78     if (pIDList != NULL)
     79     {
     80         psl->SetIDList(pIDList);
     81     }
     82 
     83     //7.按照一定的搜索规则试图获得目标对象,即使目标对象已经被删除或移动,重命名
     84     if (pRelativePat != NULL && pRelativePat[0] != L'')
     85     {
     86         psl->SetRelativePath(*pRelativePat, 0);
     87     }
     88 
     89     //8.参数信息
     90     if (pArguments != NULL && pArguments[0] != L'')
     91     {
     92         psl->SetArguments(*pArguments);
     93     }
     94 
     95     //9.描述信息(备注行)
     96     if (pDescription != NULL && pDescription[0] != L'')
     97     {
     98         psl->SetDescription(*pDescription);
     99     }
    100 
    101     //确保快捷方式路径由ANSI字符串组成
    102     //!!这个文件名改变了,就需要删除原有快捷方式,没改,就直接创建,不用删除原有的。
    103     //CString wsz = L"C:\Documents and Settings\Gongjian\桌面\vc创建的快捷方式.lnk";
    104 
    105     //保存快捷方式
    106     ppf->Save(*pFile, TRUE);
    107 
    108 
    109     //释放IPersistFile接口
    110     ppf->Release();
    111     //释放IShellLink对象
    112     psl->Release();
    113     //释放COM接口
    114     ::CoUninitialize();
    115 
    116     return TRUE;
    117 }
  • 相关阅读:
    PHPCMS V9生成静态地址绝对路径改为相对路径的方法
    python常识系列21-->一个不能不用的python日志模块**nb_log**
    python常识系列20-->python利用xlutils修改表格内容
    单元测试框架杂记02-->unittest结合requests时报一个警告
    修改element的NavMenu 导航菜单组件样式
    算法-04 | 贪心算法
    算法-05 | 二分查找
    数据结构-07| 堆
    数据结构-06| 字典树| 并查集
    数据结构-05| 布隆过滤器| 缓存机制
  • 原文地址:https://www.cnblogs.com/spriteflk/p/4618565.html
Copyright © 2011-2022 走看看