請選擇 進入手機版 | 繼續訪問電腦版

微剋多資訊

 找回密碼
 註冊

Login

Google帳號登入

搜索
回覆 1則 瀏覽 1626篇

[程式+碼源] MuiCache Tools

簽到天數: 182

該用戶今日未簽到

發表於 2019-9-18 21:48 | 顯示全部樓層 |閱讀模式
本帖最後由 gary8349 於 2019-9-18 21:48 編輯

【軟體名稱】:MuiCache Tools
【軟體版本】:1.0.0.1
【檔案大小】:604KB
【檔案格式】:exe
【測試環境】:Windows 10 x64 教育版(Win7以下未測試)
【放置空間】:Google
【下載網址】:傳送門
【校驗工具】:Google

檔案 : MuiCache.exe
檔案大小 : 604.5 KB
建立日期 : 2019/09/18
修改日期 : 2019/09/18
CRC32碼 : 5AEEA73A
MD5碼 : 329FEB6DE29D9248859558F3D5B8544D
SHA1碼 : DDB3F47900E846B2413019EF1A84AB3787867042

剛好看到論壇上有人有改MuiCache的需求,
就順手寫了一支小工具雖然不及市面上的軟體直觀方便
但應該也夠用了XD
如果有Bug再請回饋,感謝~

載點內有附上AutoIt3源碼
後來寫得有點亂,傷眼見諒0.0


以下為功能介紹:(以 "文字文件" 做示範)

支援以下三個路徑:
'HKCU\Software\Microsoft\Windows\ShellNoRoam\MUICache'
'HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache'
'HKCU\Software\Classes\Local Settings\MuiCache\*\**\'

本工具可以讓你:
更方便於修改MuiCache項目的對應值(文字)
只要先選擇要修改的項目,
然後將要修改的文字修改好,
按下變更就好囉~

本工具亦支援使用命令行,格式如下(軟體路徑如有空格,請自行補上雙引號)
指令:MuiCache.exe "@C:\WINDOWS\system32\notepad.exe,-469" "TXT文字項目"
說明:軟體名稱 "參數1 >>項目的名稱" "參數2>>要修改成的文字"

工具預覽:


變更示例:


  • 經典美文,原創內容

    ad6543210 貢獻度 +10

簽到天數: 182

該用戶今日未簽到

 樓主| 發表於 2019-9-18 21:49 | 顯示全部樓層

源碼

  1. #AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w- 4 -w 5 -w 6 -w 7

  2. #cs
  3. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  4. |                                文件說明                                |
  5. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  6.         Dim   ==> 如變數名稱不存在於 Global 中,則設定為 Local 區域範圍
  7.         Local ==> 宣告為 區域變數, 生命週期只有在 Fuction 裡面
  8.         Gobal ==> 宣告為 全域變數, 生命週期從程式開始一直到結束
  9.         Const ==> 常數,使用 Const 時,第一次一定要給右值,因其後便無法再 指定數值 給 Const 變數
  10. #ce


  11. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  12. ;;|                            編譯程式後的資訊                            |
  13. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  14. #RequireAdmin
  15. #AutoIt3Wrapper_Icon=C:\Program Files (x86)\AutoIt3\Icons\Kakeru.ico
  16. #AutoIt3Wrapper_Compression=4
  17. #AutoIt3Wrapper_UseUpx=y
  18. #AutoIt3Wrapper_Res_HiDpi = y
  19. #AutoIt3Wrapper_UseX64=n ;;; x86系統應將=y改為=n。;;將程序編譯為32位,能完美運行於64位系統中
  20. #AutoIt3Wrapper_Res_Comment=MuiCache Tool
  21. #AutoIt3Wrapper_Res_Description=MuiCache Tool
  22. #AutoIt3Wrapper_Res_Fileversion=1.0.0.1
  23. #AutoIt3Wrapper_Res_LegalCopyright=Copyright © 2019 SHIWASU KAKERU 版權所有。保留一切權利。
  24. #AutoIt3Wrapper_Res_Language=1028
  25. #AutoIt3Wrapper_Res_requestedExecutionLevel=highestAvailable


  26. #cs ____________________________________

  27.         Au3版本:3.3.14.5
  28.         SciTE版本:3.6.6
  29.         腳本作者:しわす かける(SHIWASU KAKER)

  30.         腳本功能:MuiCache 修改
  31.         參考代碼:

  32. #ce _______________腳本開始_________________


  33. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  34. ;;|                              載入Fuction                              |
  35. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  36. #include <GUIConstantsEx.au3> ;;基本
  37. #include <Misc.au3> ;;防止重複執行
  38. #include <StaticConstants.au3> ;;控件
  39. #include <ComboConstants.au3> ;;Combo
  40. #include <WindowsConstants.au3> ;;Combo
  41. #include <EditConstants.au3> ;;Input
  42. #include <ButtonConstants.au3> ;;按鈕樣式


  43. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  44. ;;|                              防止重複執行                              |
  45. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  46. _Singleton(@ScriptName)


  47. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  48. ;;|                         判斷是否以管理員身份執行                        |
  49. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  50. Local $ADMIN
  51. If IsAdmin() Then
  52.         $ADMIN="當前管理員權限運行"
  53. Else
  54.         $ADMIN="當前非管理員權限運行"
  55.         MsgBox(262144,'',$ADMIN)
  56. EndIf


  57. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  58. ;;|                                 宣告變數                                |
  59. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  60. Global $GUIWidth = 800 ;;介面寬
  61. Global $GUILength = 300 ;;介面高
  62. Global $fontsize=13, $font_xing=300, $font_var=Default, $font_name='Microsoft JhengHei', $font_quality=5 ;;全局字體及大小(備用字體:'Comic Sans Ms'、'YaHei Consolas Hybrid')

  63. Global Const $Title = 'MuiCache Tool' ;;軟體名稱
  64. Global Const $ver = '1.0.0.1' ;;版本號碼

  65. Global $rootPath[5] = ["HKLM64", "HKU64", "HKCU64", "HKCR64", "HKCC64"]
  66. Global $fa = 1

  67. Global $RegAims1 = $rootPath[2] & '\Software\Microsoft\Windows\ShellNoRoam\MUICache'
  68. Global $RegAims2 = $rootPath[2] & '\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache'
  69. Global $RegAims3 = $rootPath[2] & '\Software\Classes\Local Settings\MuiCache'

  70. Global $Valbtn = 'N'
  71. Global $path
  72. Global Const $help = '請使用正確的 參數1 和 參數2 喔~ ヽ(*´∀`)ノ゚' & @CRLF & @CRLF & _
  73.                                          '格式如下:' & @CRLF & _
  74.                                          'MuiCache.exe "@C:\WINDOWS\system32\notepad.exe,-469" "TXT文字項目"' & @CRLF & @CRLF & _
  75.                                          '指令說明:本軟體名稱 "註冊表項目" "說明文字(值)"'

  76. Local $enVal, $val, $naPath, $na
  77. Global $RunMode
  78. Local $a,$b,$c,$d,$e,$f


  79. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  80. ;;|                                模式判斷                                |
  81. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  82. If $CmdLine[0] = 0 Then
  83.         $RunMode = 'Windows'
  84. ElseIf $CmdLine[0] = 2 Then
  85.         $RunMode = 'Dos'
  86. Else
  87.         MsgBox(262144+16,'錯誤',$help,10)
  88.         Exit
  89. EndIf


  90. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  91. ;;|                                Dos模式                                |
  92. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  93. If $RunMode = 'Dos' Then
  94.         ;;遍歷HKCU64\Software\Classes\Local Settings\MuiCache\
  95.         readReg2($RegAims1, $fa)
  96.         readReg2($RegAims2, $fa)
  97.         readReg($RegAims3, $fa)

  98.         ;;判斷是否REG含有要變更的值之項目
  99.         If $Valbtn = 'Y' And $CmdLine[2] <> '' And $CmdLine[2] <> Null Then ;;檢查項值是否為空
  100.                 _regWrite($path,$CmdLine[1],$CmdLine[2])
  101.                 Sleep(50)
  102.                 If RegRead($path,$CmdLine[1]) = $CmdLine[2] Then ;;檢查是否修改成功
  103.                         ;;ConsoleWrite('修改完成' & @CRLF)
  104.                         MsgBox(262144+64,'完成','已成功執行變更。',3)
  105.                 Else
  106.                         MsgBox(262144+48,'錯誤','無法變更項目值,請檢查是否有執行權限。',3)
  107.                 EndIf
  108.         ElseIf $Valbtn = 'N' Then
  109.                 ;;ConsoleWrite('找不到項目' & @CRLF)
  110.                 MsgBox(262144+48,'錯誤','找不到項目',3)
  111.         Else
  112.                 ;;ConsoleWrite('例外狀況' & @CRLF)
  113.                 MsgBox(262144+48,'錯誤','例外狀況',3)
  114.         EndIf
  115.         Exit
  116. EndIf


  117. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  118. ;;|                                 主窗體                                 |
  119. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  120. Opt("GUIOnEventMode",1);;使用事件模式

  121. Global $Form1 = GUICreate($Title & ' v' & $ver,$GUIWidth,$GUILength,-1,-1)
  122. GUISetFont($fontsize,$font_xing,$font_var,$font_name,$Form1,$font_quality) ;;全局字型
  123. GUISetBkColor(0xffe6ea) ; 將變更背景色彩
  124. GUISetOnEvent($GUI_EVENT_CLOSE, "AForm1Close")


  125. GUICtrlCreateLabel('MuiCache 路徑:',10,10,180,25)
  126. GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT);;控件透明
  127. GUICtrlSetFont(-1,$fontsize,700)
  128. Global $MuiCachePath = GUICtrlCreateInput('',10,40,780,30,$ES_READONLY)
  129. GUICtrlSetFont(-1,$fontsize-3)

  130. GUICtrlCreateLabel('MuiCache 項目:',10,80,180,25)
  131. GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT);;控件透明
  132. GUICtrlSetFont(-1,$fontsize,700)
  133. Global $MuiCacheItem = GUICtrlCreateCombo('',10,110,780,150,BitOR($CBS_DROPDOWN,$WS_VSCROLL,$CBS_NOINTEGRALHEIGHT,$CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL))
  134. GUICtrlSetData($MuiCacheItem,'請選擇項目','請選擇項目')
  135. GUICtrlSetFont(-1,$fontsize-4)
  136. GUICtrlSetOnEvent(-1, "_combo")

  137. #CS 樣式說明:
  138. ($CBS_DROPDOWN,$WS_VSCROLL,$CBS_NOINTEGRALHEIGHT,$CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL)
  139. 1.默认只显示编辑控件. 用户需点击编辑控件下拉箭头显示列表框.
  140. 2.窗口带有垂直滚动条.
  141. 3.创建组合框控件的应用程序确定组合框尺寸. 通常 Windows CE(掌上型电脑的操作系统) 的组合框, 部份项目不能显示.
  142. 4.在列表框框中显示当前选择的静态文本字段.
  143. 5.在编辑控件行右边结束的位置输入字符时自动卷动文本. 如果没有设置这个样式, 则只能输入适合编辑控件矩形边界的有限文本.
  144. #CE

  145. GUICtrlCreateLabel('MuiCache 項值:',10,155,180,25)
  146. GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT);;控件透明
  147. GUICtrlSetFont(-1,$fontsize,700)
  148. Global $MuiCacheVal = GUICtrlCreateInput('',10,185,780,30)
  149. GUICtrlSetFont(-1,$fontsize-3)
  150. GUICtrlSetState(-1,$GUI_FOCUS) ;;預設光標所在位置
  151. ;;GUICtrlSetColor(-1,0xb50000)
  152. GUICtrlSetBkColor(-1,0xfff8e6)

  153. Global $runBtn = GUICtrlCreateButton('變更',($GUIWidth/2)-(90/2),240,90,35,$BS_DEFPUSHBUTTON)
  154. GUICtrlSetOnEvent(-1, "_apply")

  155. GUICtrlCreateLabel('Power By MicroDuo',$GUIWidth-210,7,200,25,$SS_CENTER)
  156. GUICtrlSetOnEvent(-1, "_OpenSite1")
  157. GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT);;控件透明
  158. GUICtrlSetFont(-1,$fontsize-1,700,2,$font_name)
  159. GUICtrlSetColor(-1,0xf695a6)
  160. GuiCtrlSetCursor(-1, 0)

  161. GUICtrlCreateLabel('命令行用法',10,$GUILength-25-5,100,25)
  162. GUICtrlSetOnEvent(-1, "_helper")
  163. GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT);;控件透明
  164. GUICtrlSetFont(-1,$fontsize-4,$font_var,4,$font_name)
  165. GUICtrlSetColor(-1,0xCB0DF7)
  166. GuiCtrlSetCursor(-1, 0)

  167. GUISetState(@SW_SHOW)

  168. readReg2($RegAims1, $fa)
  169. readReg2($RegAims2, $fa)
  170. readReg($RegAims3, $fa)


  171. While 1
  172.         Sleep(50)
  173.         _ReduceMemory(@AutoItPID) ;;記憶體優化
  174. WEnd


  175. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  176. ;;|                                基本函數                                |
  177. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  178. Func AForm1Close() ;;關閉本程序
  179.         Exit
  180. EndFunc

  181. Func _ReduceMemory($i_PID = -1) ;;整理記憶體
  182.         #CS ------ Function 來(修改)源 -------------------------
  183.                 作者:eaglelin(綠色風's Blog)
  184.                 網址:http://www.jianyiit.com/post-277.html
  185.         #CE -------------------------------------------------------------------
  186.         Local $ai_Return
  187.         If $i_PID <> -1 Then
  188.                 Local $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $i_PID)
  189.                 $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', $ai_Handle[0])
  190.                 DllCall('kernel32.dll', 'int', 'CloseHandle', 'int', $ai_Handle[0])
  191.         Else
  192.                 $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', -1)
  193.         EndIf
  194.         Return $ai_Return[0]
  195. EndFunc   ;==>_ReduceMemory


  196. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  197. ;;|                                核心函數                                |
  198. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  199. Func readReg($faPath, $step) ;;遍歷註冊表項,遍歷子鍵
  200.         #CS ------ Function 來(修改)源 -------------------------
  201.                 作者:vigiles
  202.                 網址:https://autoit8.com/forum.php?mod=redirect&goto=findpost&ptid=43706&pid=569929&fromuid=7662477
  203.         #CE -------------------------------------------------------------------

  204.        
  205.         While 1
  206.                         ;獲取子鍵(父鍵,索引)
  207.                         $naPath = RegEnumKey($faPath, $step)
  208.                         If Not @error Then

  209.                                         ;----------------------遍歷本鍵的項--------------------
  210.                                         $na = 1
  211.                                         While 1
  212.                                                         ;;Sleep(50)
  213.                                                         ;獲取項(鍵,索引)
  214.                                                         $enVal = RegEnumVal($faPath & "\" & $naPath, $na)
  215.                                                         If @error Then ExitLoop

  216.                                                         ;讀取項的值(鍵,項)
  217.                                                         $val = RegRead($faPath & "\" & $naPath, $enVal)

  218.                                                         If $RunMode = 'Dos' Then
  219.                                                                 ;;假如項目有與參數1相符
  220.                                                                 If $enVal = $CmdLine[1] And $CmdLine[2] <> '' And $CmdLine[2] <> Null Then
  221.                                                                         ;;開關打開
  222.                                                                         $Valbtn = 'Y'
  223.                                                                         ;;紀錄項目位置
  224.                                                                         $path = $faPath & "\" & $naPath
  225.                                                                 EndIf
  226.                                                         ElseIf $RunMode = 'Windows' Then
  227.                                                                 ;;GUICtrlSetData($MuiCachePath,$faPath & "\" & $naPath)
  228.                                                                 GUICtrlSetData($MuiCacheItem,$enVal &  ' -- ' & $val,'請選擇項目')
  229.                                                         EndIf

  230.                                                         $na = $na + 1
  231.                                         WEnd

  232.                                         ;----------------------遍歷下一級 鍵---------------------
  233.                                         readReg($faPath & "\" & $naPath, 1)
  234.                         Else
  235.                                         ExitLoop ;如果獲取結束,退出
  236.                         EndIf

  237.                         $step = $step + 1

  238.         WEnd
  239. EndFunc   ;==>readReg

  240. Func readReg2($faPath, $step) ;;遍歷註冊表項,遍歷子鍵
  241.         #CS ------ Function 來(修改)源 -------------------------
  242.                 作者:vigiles
  243.                 網址:https://autoit8.com/forum.php?mod=redirect&goto=findpost&ptid=43706&pid=569929&fromuid=7662477
  244.         #CE -------------------------------------------------------------------

  245.        
  246.         While 1
  247.                         If Not @error Then
  248.                                         ;----------------------遍歷本鍵的項--------------------
  249.                                         $na = 1
  250.                                         While 1
  251.                                                         ;;Sleep(50)
  252.                                                         ;獲取項(鍵,索引)
  253.                                                         $enVal = RegEnumVal($faPath, $na)
  254.                                                         If @error Then ExitLoop
  255.                                                         ;讀取項的值(鍵,項)
  256.                                                         $val = RegRead($faPath, $enVal)
  257.                                                         If $RunMode = 'Dos' Then
  258.                                                                 ;;假如項目有與參數1相符
  259.                                                                 If $enVal = $CmdLine[1] And $CmdLine[2] <> '' And $CmdLine[2] <> Null Then
  260.                                                                         ;;開關打開
  261.                                                                         $Valbtn = 'Y'
  262.                                                                         ;;紀錄項目位置
  263.                                                                         $path = $faPath & "\" & $naPath
  264.                                                                 EndIf
  265.                                                         ElseIf $RunMode = 'Windows' Then
  266.                                                                 ;;GUICtrlSetData($MuiCachePath,$faPath & "\" & $naPath)
  267.                                                                 GUICtrlSetData($MuiCacheItem,$enVal &  ' -- ' & $val,'請選擇項目')
  268.                                                         EndIf
  269.                                                         $na = $na + 1
  270.                                         WEnd
  271.                                         ;----------------------遍歷下一級 鍵---------------------
  272.                                         If $faPath = $RegAims3 Then readReg($faPath & "\" & $naPath, 1)
  273.                         Else
  274.                                         ExitLoop ;如果獲取結束,退出
  275.                         EndIf
  276.                         $step = $step + 1
  277.         WEnd
  278. EndFunc   ;==>readReg


  279. Func _regWrite($regpath,$regString,$regValue) ;;修改註冊表
  280.         RegWrite($regpath,$regString,'REG_SZ',$regValue)
  281. EndFunc

  282. Func _FromComboToPath($item)
  283.         $a = RegEnumKey($RegAims3,1)
  284.         $b = RegEnumKey($RegAims3 & '\' & $a,1)
  285.         $c = $RegAims3 & '\' & $a & '\' & $b
  286.         $d = RegRead($c,$item)
  287.         If @error = 0 Then Return $c

  288.         $e = RegRead($RegAims1,$item)
  289.         If @error = 0 Then Return $RegAims1

  290.         $f = RegRead($RegAims2,$item)
  291.         If @error = 0 Then Return $RegAims2
  292.         Return '查無路徑'
  293. EndFunc




  294. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  295. ;;|                                其他函數                                |
  296. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  297. Func _OpenSite($siteUrl) ;;修改註冊表
  298.         Run(@ComSpec & " /c " & 'start ' & $siteUrl, "", @SW_HIDE)
  299. EndFunc

  300. Func _OpenSite1() ;;修改註冊表
  301.         Local $url = 'https://www.microduo.tw/'
  302.         _OpenSite($url)
  303. EndFunc

  304. Func _combo() ;;依選擇導入值
  305.         Local $sStr = GUICtrlRead($MuiCacheItem)
  306.         Local $str = StringSplit($sStr,' -- ',1)
  307.         Local $mPath = _FromComboToPath($str[1])
  308.         Local $val = RegRead($mPath, $str[1])

  309.         If $sStr <> '請選擇項目' Then
  310.                 GUICtrlSetData($MuiCachePath,$mPath)
  311.                 GUICtrlSetData($MuiCacheVal,$val)
  312.                 GUICtrlSetTip($MuiCacheItem,$val,'',0,0)
  313.         EndIf
  314.         Return
  315. EndFunc

  316. Func _apply() ;;執行修改
  317.         If GUICtrlRead($MuiCacheItem) = '請選擇項目' Then Return
  318.         If GUICtrlRead($MuiCacheVal) = '' Or GUICtrlRead($MuiCacheVal) = Null Then Return
  319.         GUICtrlSetState($runBtn,$GUI_DISABLE)
  320.         GUICtrlSetState($MuiCacheVal,$GUI_DISABLE)
  321.         GUICtrlSetState($MuiCacheItem,$GUI_DISABLE)
  322.         If MsgBox(262144+36, "", "確定要值行變更嗎?") <> 6 Then
  323.                 GUICtrlSetState($runBtn,@SW_ENABLE)
  324.                 GUICtrlSetState($MuiCacheVal,@SW_ENABLE)
  325.                 GUICtrlSetState($MuiCacheItem,@SW_ENABLE)
  326.                 Return
  327.         EndIf
  328.         Local $mPath = GUICtrlRead($MuiCachePath) ;;讀取MuiCache路徑
  329.         Local $sStr = GUICtrlRead($MuiCacheItem) ;;讀取Combo
  330.         Local $str = StringSplit($sStr,' -- ',1) ;;拆分Combo文字
  331.         Local $sVal = RegRead($mPath,$str[1]) ;;從REG讀取原始項目值
  332.         Local $newVal = GUICtrlRead($MuiCacheVal) ;;輸入的項目值

  333.         If $sVal = $newVal Then ;;如果沒有輸入新的值,和舊值一樣則不更改
  334.                 MsgBox(262144+48,'提示','舊值與新值相同,將不進行變更。',5)
  335.                 GUICtrlSetState($runBtn,@SW_ENABLE)
  336.                 GUICtrlSetState($MuiCacheVal,@SW_ENABLE)
  337.                 GUICtrlSetState($MuiCacheItem,@SW_ENABLE)
  338.                 Return
  339.         Else
  340.                 _regWrite($mPath,$str[1],$newVal) ;;執行項值更改
  341.                 ;;判斷REG值和輸入值是否相同
  342.                 If RegRead($mPath,$str[1]) = GUICtrlRead($MuiCacheVal) Then ;;修改成功
  343.                         GUICtrlSetData($MuiCacheItem,'')
  344.                         GUICtrlSetData($MuiCacheItem,'請選擇項目','請選擇項目')
  345.                         readReg2($RegAims1, $fa)
  346.                         readReg2($RegAims2, $fa)
  347.                         readReg($RegAims3, $fa)
  348.                         GUICtrlSetData($MuiCacheVal,'')
  349.                         GUICtrlSetData($MuiCachePath,'')
  350.                         MsgBox(262144+64,'完成','已成功執行變更。',5)
  351.                         GUICtrlSetState($runBtn,@SW_ENABLE)
  352.                         GUICtrlSetState($MuiCacheVal,@SW_ENABLE)
  353.                         GUICtrlSetState($MuiCacheItem,@SW_ENABLE)
  354.                         Return
  355.                 Else ;;失敗
  356.                         MsgBox(262144+16,'錯誤','無法變更項目值,請檢查是否有執行權限。',5)
  357.                         GUICtrlSetState($runBtn,@SW_ENABLE)
  358.                         GUICtrlSetState($MuiCacheVal,@SW_ENABLE)
  359.                         GUICtrlSetState($MuiCacheItem,@SW_ENABLE)
  360.                         Return
  361.                 EndIf
  362.         EndIf
  363. EndFunc

  364. Func _helper() ;;執行修改
  365.         MsgBox(262144+64,'命令行用法',$help)
  366. EndFunc


複製代碼
1 0

使用道具

您需要登入後才可以回帖 登入 | 註冊

本版積分規則

Discuz! X

© 2009-2017 Microduo

快速回覆 返回頂部 返回列表