我的电脑桌面添加链接

  1. ;创建界面
  2. Gui, Add, Text, x0 y0 w40 h20 , 名称:
  3. Gui, Add, Edit, x50 y0 w280 h20 vname,
  4. Gui, Add, Button, x330 y0 w80 h20 gapply, 应用
  5. Gui, Add, Button, x410 y0 w40 h20 ghelp,
  6. Gui, Add, Text, x0 y20 w40 h20 , 图标
  7. Gui, Add, Picture, x40 y20 w24 h24 vsico,
  8. Gui, Add, Edit, x64 y20 w346 h20 vicon,
  9. Gui, Add, Button, x410 y20 w40 h20 gselectico, 浏览
  10. Gui, Add, Text, x0 y50 w50 h20 , 右键菜单
  11. Gui, Add, text, x0 y70 w40 h20 , 菜单名
  12. Gui, add, Edit, x40 y70 w100 h20 vmenu_name,
  13. Gui, Add, text, x140 y70 w40 h20 , 命令行
  14. Gui, add, Edit, x180 y70 w230 h20 vmenu_cmd,
  15. Gui, Add, Button, x410 y70 w40 h20 gadd, 添加
  16. Gui, add, ListView, xo y90 w450 h100, id|是否默认|标题|命令
  17. Gui, Show, , 我的电脑/桌面添加链接 By Thinkai
  18. ;初始化
  19. option := object()
  20. option["index"] := 0
  21. Return
  22.  
  23. add:
  24. gui, submit, nohide ;获取表单
  25. if (menu_name and menu_cmd) ;已经填写
  26. {
  27. option["index"]++
  28. Default =
  29. MsgBox, 36, 提示, 是否设为默认项?
  30. IfMsgBox, Yes
  31. {
  32. option["default"] := option["index"]
  33. Default =
  34. loop % LV_GetCount() ;覆盖lv的显示
  35. {
  36. LV_Modify(A_index, , , "否")
  37. }
  38. }
  39. ;键值是个数组
  40. option[option["index"]] := object()
  41. option[option["index"]]["name"] := menu_name
  42. option[option["index"]]["cmd"] := menu_cmd
  43. LV_Add("",option["index"],default,menu_name,menu_cmd) ;添加到列表 列表只是显示 执行从数组走
  44. LV_ModifyCol() ;调整列宽
  45. ;清空填写框
  46. GuiControl, , menu_name,
  47. GuiControl, , menu_cmd,
  48. }
  49. Return
  50.  
  51.  
  52. apply:
  53. gui, submit, nohide
  54. if (name and icon)
  55. {
  56. Random, n5, 10000, 99999
  57. clsid = {FD4DF9E0-E3DE-11CE-BFCF-ABCD1DE%n5%} ;随机CLSID
  58. if (A_Is64bitOS && (!InStr(A_OSType,"WIN_2003") or !InStr(A_OSType,"WIN_XP") or !InStr(A_OSType,"WIN_2000"))) ;是新版64位系统
  59. item = SoftwareClassesWow6432NodeCLSID%clsid%
  60. Else
  61. item = SoftwareClassesCLSID%clsid%
  62. ;创建具体的CLSID
  63. RegWrite, REG_SZ, HKCU, %item%, , %name% ;显示名称
  64. RegWrite, REG_SZ, HKCU, %item%, InfoTip, 右键查看%name%具体项目 ;悬停提示
  65. RegWrite, REG_SZ, HKCU, %item%, LocalizedString, %name%
  66. RegWrite, REG_SZ, HKCU, %item%, System.ItemAuthors, 右键查看%name%具体项目
  67. RegWrite, REG_SZ, HKCU, %item%, TileInfo, prop:System.ItemAuthors
  68. RegWrite, REG_SZ, HKCU, %item%DefaultIcon, , %icon% ;图标
  69. RegWrite, REG_SZ, HKCU, %item%InprocServer32, , %SystemRoot%system32shdocvw.dll
  70. RegWrite, REG_SZ, HKCU, %item%InprocServer32, ThreadingModel, Apartment
  71. ;循环添加命令
  72. Loop % option["index"]
  73. {
  74. mname := option[A_index]["name"]
  75. mcmd := option[A_index]["cmd"]
  76. if option["default"] = A_index
  77. RegWrite, REG_SZ, HKCU, %item%Shell, , n_%A_Index%
  78. RegWrite, REG_SZ, HKCU, %item%Shelln_%A_Index%, , %mname% ;名称
  79. RegWrite, REG_SZ, HKCU, %item%Shelln_%A_Index%Command, , %mcmd% ;命令
  80. }
  81. ;RegWrite, REG_BINARY, HKCU, %item%, Attributes, 00000000 ;属性
  82. RegWrite, REG_SZ, HKCU, SoftwareMicrosoftWindowsCurrentVersionExplorerMyComputerNameSpace%clsid%, , %name% ;添加到我的电脑
  83. RegWrite, REG_SZ, HKCU, SOFTWAREMicrosoftWindowsCurrentVersionExplorerDesktopNameSpace%clsid%, , %name% ;添加到桌面
  84. ;生成卸载reg
  85. FileAppend, Windows Registry Editor Version 5.00, %A_ScriptDir%卸载%name%.reg
  86. FileAppend, `n[-HKEY_CURRENT_USER%item%], %A_ScriptDir%卸载%name%.reg
  87. FileAppend, `n[-HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionExplorerMyComputerNameSpace%clsid%], %A_ScriptDir%卸载%name%.reg
  88. FileAppend, `n[-HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionExplorerDesktopNameSpace%clsid%], %A_ScriptDir%卸载%name%.reg
  89. MsgBox, 4128, 提示, 已创建图标,桌面上请手动刷新!`n若要卸载,请在程序目录下`n双击"卸载%name%.reg"卸载!
  90. }
  91. ;清空所有填写
  92. GuiControl, , menu_name,
  93. GuiControl, , menu_cmd,
  94. GuiControl, , icon,
  95. GuiControl, , name,
  96. GuiControl, , sico,
  97. LV_Delete()
  98. option := object()
  99. option["index"] := 0
  100. Return
  101.  
  102. selectico:
  103. gui +owndialogs
  104. fileselectfile, icon, 1, %lastdir%, 打开一图标文件, 图标文件(*.ico;*.exe)
  105. if icon =
  106. Return
  107. GuiControl, , icon, %icon%
  108. guicontrol, , sico, %icon%
  109. Return
  110.  
  111. help:
  112. MsgBox, 4128, 帮助, “名称”为在我的电脑和桌面显示的名称`n“图标”为在我的电脑和桌面显示的图标`n“菜单名”是右键菜单中的项名,可以使用“(&e)”这种快捷键`n“命令行”为打开时执行的命令。`n`n若要卸载,请在程序目录下`n双击卸载xx.reg卸载。, 10
  113. Return
  114.  
  115. show_obj(obj,menu_name:=""){
  116. if menu_name =
  117. {
  118. main = 1
  119. Random, rand, 100000000, 999999999
  120. menu_name = %A_Now%%rand%
  121. }
  122. Menu, % menu_name, add,
  123. Menu, % menu_name, DeleteAll
  124. for k,v in obj
  125. {
  126. if (IsObject(v))
  127. {
  128. Random, rand, 100000000, 999999999
  129. submenu_name = %A_Now%%rand%
  130. Menu, % submenu_name, add,
  131. Menu, % submenu_name, DeleteAll
  132. Menu, % menu_name, add, % k ? "【" k "】[obj]" : "", :%submenu_name%
  133. show_obj(v,submenu_name)
  134. }
  135. Else
  136. {
  137. Menu, % menu_name, add, % k ? "【" k "】" v: "", MenuHandler
  138. }
  139. }
  140. if main = 1
  141. menu,% menu_name, show
  142. }
  143.  
  144.  
  145. MenuHandler:
  146. return
  147.  
  148. GuiClose:
  149. ExitApp
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
其他

快捷抓取、查找屏幕文字/图像字符串

2020-3-9 2:34:44

其他

源代码加密器2.7——FeiYue

2020-3-9 4:02:44

个人中心
购物车
优惠劵
私信列表
搜索