zoukankan      html  css  js  c++  java
  • 用 Win32 API 建立桌面快捷方式的一种方法

    初次接触这个问题,经过查询得知:API提供了一个COM接口调用, IShellLink 将允许你建立一个快捷方式,要在桌面建立一个快捷方式,只要把这个快捷方式保存到桌面目录就可以了。可是这需要了解这个COM接口的调用方法,以及一些API的使用问题,如CreateShortCut,很繁琐,一个小时下来也没有结果。

    我放弃了上面的想法,开始研究桌面快捷方式,通过对批处理建立的快捷方式的研究,发现当你在桌面建立一个对应的 .url 的文件即可,windows会将其解析为快捷方式。

    假设你的目标程序为 D:\IDEasm.exe,下面为其创建桌面快捷方式。

    第一个问题就是:.url 文件的格式

    对应的 IDEasm.url 文件内容及格式如下,(符号 // 后为注释部分,不在文件中)

    ---------------------------------------------

    [InternetShortcut]                                      //标志                  
    URL=D:\IDEasm.exe                                 //目标程序全路径文件名
    IconFile=D:\IDEasm.exe                            //以下设置IDEasm.url文件的图标
    IconIndex=0 

    ---------------------------------------------

    写完后保存,此文件会自动被系统解析成快捷方式的样子。将上面的文件保存在桌面后,就相当于在桌面建立了快捷方式。

    这样我们只要在程序中用 CreateFile 创建这个 .url 文件就行了,唯一需要改动的只是目标程序的全路径文件名(这可以由程序本身获得)。

    第二个问题出现了:获得桌面的路径名。

      1、判断系统盘,可以通过 GetWindowsDirectory 来提取。比如 C:\

      2、由上面的结果拼接出桌面的全路径名 'C:\' + 'Documents and Settings\All Users\桌面'

    综上,在得到桌面的全路径名后,再拼接出我们要建立的 .url文件的全路径文件名即可。最后用 CreateFile 来创建这个文件 (即:C:\Documents and Settings\All Users\桌面\IDEasm.url ),再用WriteFile将上面虚线框中的内容写入此文件即可.

  • 相关阅读:
    OAuth 2.0之授权码模式
    Rest和Restful & http
    HTTP1.1协议中文版-RFC2616
    Linux中安装Python2.7
    CvMat、Mat、IplImage之间的转换详解及实例
    ROS Node/Topic/Message/Service的一些问题
    ROS的tf_tree相关
    机器人路径规划(包括行人检测及动态避障总结)(长期更新)
    相关博客链接(长期更新)
    关于视觉里程计以及VI融合的相关研究(长期更新)
  • 原文地址:https://www.cnblogs.com/feng801/p/1818886.html
Copyright © 2011-2022 走看看