TC官方合作论坛

标题: 求一个发送快捷方式的写法 [打印本页]

作者: abmin    时间: 2015-5-20 15:20
标题: 求一个发送快捷方式的写法
我想发送程序自身EXE,发送一份快捷启动方式ink到桌面。
该快捷方式 还能获取到程序自身的ICO。


作者: a837198    时间: 2015-5-20 16:53
本帖最后由 a837198 于 2015-5-20 16:56 编辑

暂时先用 vbs 文件来实现 吧
调用的话   桌面快捷方式()   即可 把自己创建一个桌面快捷方式

  1. 功能 创建快捷方式(文件源路径="",快捷方式路径="",快捷方式名="")        
  2.     如果(文件源路径=="")
  3.         文件源路径=窗口获取路径(窗口获取自我句柄())
  4.     结束
  5.    
  6.     选择(快捷方式名)
  7.         条件 ""
  8.         变量 len1,返回值,返回值2
  9.         len1=字符串分割(文件源路径,"\\",返回值)
  10.         字符串分割(返回值[len1-1],".",返回值2)
  11.         快捷方式名=返回值2[0]
  12.         条件 "窗口标题"
  13.         快捷方式名=窗口获取标题(窗口获取自我句柄())
  14.         默认
  15.         快捷方式名=字符串替换(快捷方式名,".lnk","")
  16.     结束
  17.    
  18.     变量 strProgram ="Sub Shortcut(filepath,lnkpath)\r\nOn Error Resume Next\r\n  set WshShell = CreateObject(\"WScript.Shell\")\r\n "
  19.    
  20.     如果(快捷方式路径=="")
  21.         //在桌面创建快捷方式
  22.         快捷方式名=快捷方式名&".lnk"
  23.         strProgram =strProgram &"strDesktop = WshShell.SpecialFolders(\"Desktop\")\r\n set oShellLink = WshShell.CreateShortcut(strDesktop &\"\\\"&lnkpath)\r\n "   
  24.     否则
  25.         //指定位置的快捷方式
  26.         快捷方式名=快捷方式路径&"\\"&快捷方式名&".lnk"  
  27.         strProgram =strProgram &"set oShellLink = WshShell.CreateShortcut(lnkpath)\r\n "
  28.     结束  
  29.    
  30.     strProgram =strProgram &"oShellLink.TargetPath = filepath\r\n oShellLink.WorkingDirectory =left(filepath,InStrRev(filepath, \"\\\")-1)\r\n oShellLink.Save\r\n Set oShellLink = Nothing\r\n Set WshShell = Nothing\r\n End Sub"
  31.         //此处写自己的文件地址
  32.     strProgram =strProgram &"\r\n file=\""&文件源路径&"\""
  33.     strProgram =strProgram &"\r\n lnk=\""&快捷方式名&"\""   
  34.     //此处调用创建快捷方式的函数
  35.     strProgram =strProgram &"\r\n Shortcut file,lnk"   
  36. //此处调用创建vbs文件
  37.     变量 文件句柄=文件创建(获取资源路径("rc:shortcut.vbs"),"共享读|共享写|总是创建")
  38.     文件关闭(文件句柄)
  39.     文件句柄=文件覆盖内容(获取资源路径("rc:shortcut.vbs"),strProgram)
  40. //此处调用运行vbs文件
  41.     如果(文件句柄)
  42.        命令(获取资源路径("rc:shortcut.vbs"),假)
  43.     否则
  44.        消息框("创建桌面快捷方式失败","桌面快捷方式")
  45.     结束
  46. 结束
复制代码





作者: abmin    时间: 2015-5-20 17:45
a837198 发表于 2015-5-20 16:53
暂时先用 vbs 文件来实现 吧
调用的话   桌面快捷方式()   即可 把自己创建一个桌面快捷方式

测试成功,感谢,只不过可以单独把rc:shortcut.vbs放到资源目录里 直接调用 不用去创建 可以不
我新手 看不懂 也不会改
作者: a837198    时间: 2015-5-20 18:38
本帖最后由 a837198 于 2015-5-20 18:45 编辑
abmin 发表于 2015-5-20 17:45
测试成功,感谢,只不过可以单独把rc:shortcut.vbs放到资源目录里 直接调用 不用去创建 可以不
我新手 看 ...

可以是可以  但是你需要修改内容     因为程序所放的位置不同   

操作方法以下

vbs文件内容 你这样写  保存成你想要的vbs文件  扩展名是vbs  不是txt  这个注意  
  1. Sub Shortcut(filepath,lnkpath)
  2. On Error Resume Next
  3.   set WshShell = CreateObject("WScript.Shell")
  4. strDesktop = WshShell.SpecialFolders("Desktop")
  5. set oShellLink = WshShell.CreateShortcut(strDesktop &"\"&lnkpath)
  6. oShellLink.TargetPath = filepath
  7. oShellLink.WorkingDirectory = InStrRev(filepath, "\")-1
  8. msgbox InStrRev(filepath, "\")-1
  9. oShellLink.Save
  10. Set oShellLink = Nothing
  11. Set WshShell = Nothing
  12. End Sub
复制代码


然后  下面的   filepath  lnkpath  这两个你自己写入到文件里
最后 写个调用函数  就是函数名那个
看 下面的红字部分 需要程序自己写入进去    快捷方式名记得扩展名是  .lnk

    //此处写自己的文件地址
  str文件源路径 ="\r\n file=\""&文件源路径&"\""
   str快捷方式名 ="\r\n lnk=\""&快捷方式名&"\""   
    //此处调用创建快捷方式的函数
    str函数 ="\r\n Shortcut file,lnk"   


写入进去后  就命令(该vbs地址,真)
就可以了





作者: sanmaodo    时间: 2015-8-28 03:28
a837198 发表于 2015-5-20 18:38
可以是可以  但是你需要修改内容     因为程序所放的位置不同   

操作方法以下

求教,我想在快捷方式中加入运行参数,需要怎么加?




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1