Advertisement
teacherTU

大漠插件介紹 - 按鍵精靈涂老師

Jun 20th, 2021
1,747
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.90 KB | None | 0 0
  1. // 首先打包dm.dll和RegDll.dll到附件,當然如果你還有其它資源(字庫,圖片等)也可以一併打包
  2. // 這個need_ver作為本腳本需要使用的插件版本. 如果要換插件時,記得更改這個值.
  3. need_ver = "7.2123"
  4. // 插件需要用到atl系統庫,有些XP精簡系統會把atl.dll精簡掉. 為了防止註冊失敗,這裡手動註冊一下atl.dll
  5. set ws=createobject("Wscript.Shell")
  6. ws.run "regsvr32 atl.dll /s"
  7. set ws=nothing
  8. // 釋放附件>>>>>>>>>>>>>>>>>>>
  9. // 這裡選擇c盤的test-_game作為插件的基本目錄 也就是SetPath對應的目錄。所以所有資源都釋放在此目錄.
  10. PutAttachment "c:\test_game","*.*"
  11. // 這裡要用到RegDll來註冊插件,所以必須釋放到Plugin. 但是切記不能把dm.dll釋放到Plugin.那會導致插件失效.
  12. PutAttachment ".\Plugin" ,"RegDll.dll"
  13. // 插件註冊開始>>>>>>>>>>>>>>>>>>>
  14. // 下面開始註冊插件,先嘗試用RegDll來註冊.這裡必須使用絕對路徑。以免有別人把dm.dll釋放在系統目錄.造成版本錯誤.
  15. Call Plugin.RegDll.Reg("c:\test_game\dm.dll")
  16. // 這裡判斷是否註冊成功
  17. set dm = createobject("dm.dmsoft")
  18. ver = dm.Ver()
  19. if ver <> need_ver then
  20. // 先釋放先前創建的dm
  21. set dm = nothing
  22. // 再嘗試用regsvr32 來註冊. 這裡必須使用絕對路徑。以免有別人把dm.dll釋放在系統目錄.造成版本錯誤.
  23. set ws=createobject("Wscript.Shell")
  24. ws.run "regsvr32 c:\test_game\dm.dll /s"
  25. set ws=nothing
  26. Delay 1500
  27. // 再判斷插件是否註冊成功
  28. set dm = createobject("dm.dmsoft")
  29. ver = dm.Ver()
  30. if ver <> need_ver then
  31. // 這時,已經確認插件註冊失敗了。 彈出一些調試信息,以供分析.
  32. messagebox "插件版本錯誤,當前使用的版本是:"&ver&",插件所在目錄是:"&dm.GetBasePath()
  33. messagebox "請關閉程序,重新打開本程序再嘗試"
  34. endscript
  35. end if
  36. end if
  37. // 插件註冊結束<<<<<<<<<<<<<<<
  38. // 收費註冊開始,簡單游作者也必須要加這一段. 不會重複扣費.
  39. // ok,這裡已經確認插件註冊成功,並且創建了對象,下面開始註冊收費服務.
  40. // 當然這裡也可以使用高級的RegEx函數.
  41. //dm_ret = dm.Reg("abcdefg","0001") // abcdefg是您的註冊碼. 在大漠插件網站後台可以直接獲取.
  42. if dm_ret <> 1 then
  43. messagebox "註冊失敗,返回值是:"&dm_ret
  44. endscript
  45. end if
  46. // 收費註冊結束<<<<<<<<<<<<<<<<
  47. //這裡設置插件基本目錄
  48. dm.SetPath "c:\test_game"
  49. // 獲取句柄
  50. hwnd = dm.GetMousePointWindow()
  51. // 綁定
  52. dm_ret = dm.BindWindow(hwnd,"dx","dx","dx",0)
  53. // 檢測綁定返回值
  54. if dm_ret = 0 then
  55. last_error = dm.GetLastError()
  56. // 如果是WIN7 WIN8 VISTA WIN2008系統,檢測當前系統是否有開啟UAC
  57. if dm.GetOsType() = 3 or dm.GetOsType() = 4 or dm.GetOsType() = 5 then
  58. // 有開啟UAC的話,嘗試關閉
  59. if dm.CheckUAC() = 1 then
  60. if dm.SetUAC(0) = 1 then
  61. // 關閉UAC之後,必須重啟系統才可以生效
  62. messagebox "已經關閉系統UAC設置,必須重啟系統才可以生效。點擊確定重啟系統"
  63. dm.ExitOs 2
  64. Delay 2000
  65. endscript
  66. end if
  67. end if
  68. end if
  69. // 具體錯誤碼的含義,可以參考函數GetLastError的說明.
  70. messagebox "綁定失敗,錯誤碼是:"&last_error
  71. messagebox "如果確定關閉了UAC,很可能是系統的防火墻攔截插件,請暫時關閉360等安全防火墻再嘗試"
  72. endscript
  73. end if
  74. // 下面就是腳本部分了 省略
  75. // 下面這是腳本結束時執行的部分
  76. //-------------------------------------------------
  77. dm.MoveTo 758, 552
  78. dm.LeftClick
  79. dm.KeyPress 112
  80. //-------------------------------------------------
  81. Sub OnScriptExit()
  82. dm.UnBindWindow
  83. set dm = nothing
  84. End Sub
  85. // 線程結束時調用
  86. Sub OnThreadExit()
  87. dm.UnBindWindow
  88. set dm = nothing
  89. End Sub
  90. // 結束
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement