关于如何创建快捷方式,www.shengfang.org很多资料都已经说明了。可是快捷方式不仅仅只有文件快捷方式这一种,还有很多其他种类。 如果我们在网络和拨号连www.shengfang.org接中创建了一个拨号连接,按下右键,选择创建快捷方式,如果在桌面的这个快捷方式上按下右键,此时出现的菜单明显和普通的不一样,并且它的属性也是不一样的。 如果在程序中创建这种快www.shengfang.org捷方式呢?网上的资料很少,经过搜索,在微软的站点 http://support.microsoft.com/default.aspx?scid=KB;en-us;q153750上找到了一个例子DialUp.exe,大家可以下载看看。 以下我说说我在实现中的一些经验体会。(WIN2000下调试) 1. MSDN中的Shell Liwww.shengfang.orgnks有说明:关于如何创建非文件对象的快捷方式,例如打印机等。 2.自己创建的拨号连接,我们没有办法直接获得它的IDL,必须先打开拨号和网络连接,然后枚举里面的连接,当比较连接的名称一致的时候,www.shengfang.org我们再获得该连接的IDL。代码中的GetDialUpItem 函数就是实现这个功能。然后再SetIDList正常的创建快捷方式就可以了。 3.GetDialUpItem 函数中调用www.shengfang.org了一个GetDialUpNetworkingPidl函数,该函数用来获得“网络和拨号连接”的IDL,在这里“网络和拨号连接”是通过一串GUID数字表示的的,代码里面是WIN98的GUID,WIN2000下大家可以通过点击开始按钮-附件-通讯-网络和拨号连接,然后按下右键查看属性就可以看到目标对应的一串数字了,用www.shengfang.org这串数字替代原有的才能正常访问WIN2000下的拨号连接。 4.作为COM编程,应该调用CoInitialiwww.shengfang.orgze(NULL);函数进行初始化,而代码中放在了调用GetDialUpItem 函数之后,结果会导致程序失败,应该将其放在GetDialUpItem函数之前。 5.调用代码中的函数完成创建快捷方式后,会发生程序无法正常退出的情况,这时对话框已经关闭了,但是在任务管理器中仍然可以看到该进程。需要在www.shengfang.org程序最后调用CoUninitialize函数关闭COM接口以及释放加载的DLL。 以上是本人在WIN2000下调试这个示例www.shengfang.org程序一些经验体会,请大家参考。 字体:大 中 小 |
![]() | 永久地址 http://www.shengfang.org/blog/p/dialshorttcut.php |
![]() | 引用地址 http://www.shengfang.org/blog/tb.php?tb_id=1109465457 |
2005年2月27日08:50星期日 [Dev开发]





