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

微剋多資訊

 找回密碼
 註冊

Sign in with google

Google帳號登入

搜索
回覆 7則 瀏覽 19325篇
Line

[碼源] Windows 預設路徑修改器

該用戶從未簽到

升級   0%

發表於 2012-9-4 10:38 | 顯示全部樓層 |閱讀模式
本帖最後由 rictirse 於 2015-5-29 12:09 編輯

Windows 預設路徑修改器
適用 xp vista w7

  1. #include <GUIConstants.au3>

  2. Const $cnt = 18
  3. Global $Input[$cnt],$BUT_1[$cnt],$BUT_2[$cnt],$BUT_3[$cnt]
  4. Global $i,$Var
  5. Global $Height[2] = [20,25],$Width[5] = [70,400,25,50,50]
  6. Global $x[5] = [12,$Width[0]+20,$Width[0]+$Width[1]+25,$Width[0]+$Width[1]+$Width[2]+30,$Width[0]+$Width[1]+$Width[2]+$Width[3]+35],$y = 30
  7. Global $FormWidth =  $x[4]+65, $FormHeight = 43+($cnt*$y)
  8. Global $FormName = "修改路徑"
  9. Global $GUI_BUT_Text[3] = ["...","Apply","Default"]
  10. Global $RegName[$cnt] = [ "AppData", "Cache", "Cookies", "Desktop", "Favorites", "History", "Local AppData", "Local Settings", "My Pictures", "NetHood", "Personal", "PrintHood", "Programs","Recent", "SendTo", "Start Menu", "Startup", "Templates"]
  11. Global $DefaultRoute[$cnt] = ["%USERPROFILE%Application Data", "%USERPROFILE%Local SettingsTemporary Internet Files", "%USERPROFILE%Cookies", "%USERPROFILE%桌面", "%USERPROFILE%Favorites", "%USERPROFILE%Local SettingsHistory", "%USERPROFILE%Local SettingsApplication Data", "%USERPROFILE%Local Settings", "%USERPROFILE%My DocumentsMy Pictures", "%USERPROFILE%NetHood", "%USERPROFILE%My Documents", "%USERPROFILE%PrintHood", "%USERPROFILE%「開始」功能表程式集", "%USERPROFILE%Recent", "%USERPROFILE%SendTo", "%USERPROFILE%「開始」功能表", "%USERPROFILE%「開始」功能表程式集啟動", "%USERPROFILE%Templates"]

  12. GUICreate ( $FormName, $FormWidth, $FormHeight, Default, Default,1)

  13. For $i=0 to $cnt-1
  14.         GUICtrlCreateLabel ( $RegName[$i],  $x[0], 13+($i*$y), $Width[0], $Height[0])
  15.         $Input[$i] = GUICtrlCreateInput ( RegRead ( "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerShell Folders", $RegName[$i]), $x[1], 10+($i*$y), $Width[1], $Height[0])
  16.         $BUT_1[$i] = GUICtrlCreateButton ( $GUI_BUT_Text[0], $x[2], 7+($i*$y), $Width[2], $Height[1])
  17.         $BUT_2[$i] = GUICtrlCreateButton ( $GUI_BUT_Text[1], $x[3], 7+($i*$y), $Width[3], $Height[1])
  18.         $BUT_3[$i] = GUICtrlCreateButton ( $GUI_BUT_Text[2], $x[4], 7+($i*$y), $Width[4], $Height[1])
  19. Next

  20. GUISetState (@SW_SHOW)
  21. WinSetOnTop ( $FormName, "", 1)


  22. While 1
  23.         $nMsg = GUIGetMsg()
  24.         For $i = 0 To $cnt-1
  25.                 If $nMsg = $BUT_1[$i] Then
  26.                         SelectFolder($i)
  27.                 EndIf
  28.                 If $nMsg = $BUT_2[$i] Then
  29.                         apply($i)
  30.                 EndIf
  31.                 If $nMsg = $BUT_3[$i] Then
  32.                         ReDefault($i)

  33.                 EndIf
  34.         Next
  35.         
  36.         Switch $nMsg
  37.                 Case $GUI_EVENT_CLOSE
  38.                         Exit
  39.         EndSwitch
  40. WEnd


  41. Func SelectFolder($i)
  42.         WinSetOnTop ( $FormName, "", 0)
  43.         $Var = FileSelectFolder ( "請選擇目錄", "", 1, RegRead ( "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerShell Folders", $RegName[$i]))
  44.         WinWaitClose ( "瀏覽資料夾", "請選擇目錄")
  45.         WinSetOnTop ( $FormName, "", 1)
  46.         If $Var = "" Then
  47.                 Error1()
  48.                 GUICtrlSetData ( $Input[$i], RegRead ( "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerShell Folders", $RegName[$i]))
  49.         Else
  50.                 If FileExists ($Var) = 1 Then
  51.                         GUICtrlSetData ( $Input[$i], $Var)
  52.                 Else
  53.                         Error2()

  54.                 EndIf
  55.         EndIf
  56. EndFunc

  57. Func apply($i)
  58.         If FileExists ($Var) = 1 Then
  59.                 RegWrite ( "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerUser Shell Folders", $RegName[$i],"REG_SZ", GUICtrlRead ($Input[$i]))
  60.         Else
  61.                 Error2()
  62.                 Return
  63.         EndIf
  64.         Reboot()
  65. EndFunc

  66. Func ReDefault($i)
  67.         RegWrite ( "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerUser Shell Folders", $RegName[$i], "REG_SZ", $DefaultRoute[$i])
  68.         Reboot()
  69. EndFunc

  70. Func Reboot()
  71.         GUISetState (@SW_HIDE)
  72.         If  MsgBox ( 36, $FormName,"已修改完成"&@CR&"重新啟動電腦後才會生效"&@CR&"是否馬上重新啟動") = 6 Then
  73.                 Shutdown (2)
  74.         Else
  75.                 Exit
  76.         EndIf
  77. EndFunc

  78. Func Error1()
  79.         If @OSVersion = "WIN_VISTA" Or @OSVersion = "WIN_7" Then
  80.                 ToolTip (@CR&"    取消    "&@CR&" ")

  81.         Else
  82.                 ToolTip (@CR&"    取消    "&@CR)
  83.         EndIf
  84.         Sleep (1500)
  85.         ToolTip ( "")
  86. EndFunc

  87. Func Error2()
  88.         If @OSVersion = "WIN_VISTA" Or @OSVersion = "WIN_7" Then
  89.                 ToolTip (@CR&"    路徑錯誤    "&@CR&" ")
  90.         Else
  91.                 ToolTip (@CR&"    路徑錯誤    "&@CR)
  92.         EndIf
  93.         Sleep (1500)
  94.         ToolTip ( "")
  95. EndFunc
複製代碼
樓主熱門主題

簽到天數: 189

該用戶今日未簽到

升級   100%

發表於 2013-1-29 00:14 | 顯示全部樓層
請問噹噹超版,如何將右上角的XX加上去
或是在下面新增一個結束按鈕
謝謝囉~

使用道具

該用戶從未簽到

升級   0%

 樓主| 發表於 2013-2-1 13:10 | 顯示全部樓層
gary8349 發表於 2013-1-29 00:14
請問噹噹超版,如何將右上角的XX加上去
或是在下面新增一個結束按鈕
謝謝囉~ ...

[code=autoit]#include <GUIConstants.au3>

Const $cnt = 18
Global $Input[$cnt],$BUT_1[$cnt],$BUT_2[$cnt],$BUT_3[$cnt]
Global $i,$Var
Global $Height[2] = [20,25],$Width[5] = [70,400,25,50,50]
Global $x[5] = [12,$Width[0]+20,$Width[0]+$Width[1]+25,$Width[0]+$Width[1]+$Width[2]+30,$Width[0]+$Width[1]+$Width[2]+$Width[3]+35],$y = 30
Global $FormWidth =  $x[4]+60, $FormHeight = 10+($cnt*$y)
Global $FormName = "修改路徑"
Global $GUI_BUT_Text[3] = ["...","Apply","Default"]
Global $RegName[$cnt] = [ "AppData", "Cache", "Cookies", "Desktop", "Favorites", "History", "Local AppData", "Local Settings", "My Pictures", "NetHood", "Personal", "PrintHood", "Programs","Recent", "SendTo", "Start Menu", "Startup", "Templates"]
Global $DefaultRoute[$cnt] = ["%USERPROFILE%\Application Data", "%USERPROFILE%\Local Settings\Temporary Internet Files", "%USERPROFILE%\Cookies", "%USERPROFILE%\桌面", "%USERPROFILE%\Favorites", "%USERPROFILE%\Local Settings\History", "%USERPROFILE%\Local Settings\Application Data", "%USERPROFILE%\Local Settings", "%USERPROFILE%\My Documents\My Pictures", "%USERPROFILE%\NetHood", "%USERPROFILE%\My Documents", "%USERPROFILE%\PrintHood", "%USERPROFILE%\「開始」功能表\程式集", "%USERPROFILE%\Recent", "%USERPROFILE%\SendTo", "%USERPROFILE%\「開始」功能表", "%USERPROFILE%\「開始」功能表\程式集\啟動", "%USERPROFILE%\Templates"]
GUICreate ( $FormName, $FormWidth, $FormHeight)

For $i=0 to $cnt-1
        GUICtrlCreateLabel ( $RegName[$i],  $x[0], 13+($i*$y), $Width[0], $Height[0])
        $Input[$i] = GUICtrlCreateInput ( RegRead ( "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders", $RegName[$i]), $x[1], 10+($i*$y), $Width[1], $Height[0])
        $BUT_1[$i] = GUICtrlCreateButton ( $GUI_BUT_Text[0], $x[2], 7+($i*$y), $Width[2], $Height[1])
        $BUT_2[$i] = GUICtrlCreateButton ( $GUI_BUT_Text[1], $x[3], 7+($i*$y), $Width[3], $Height[1])
        $BUT_3[$i] = GUICtrlCreateButton ( $GUI_BUT_Text[2], $x[4], 7+($i*$y), $Width[4], $Height[1])
Next

GUISetState (@SW_SHOW)
WinSetOnTop ( $FormName, "", 1)


While 1
        $nMsg = GUIGetMsg()
        For $i = 0 To $cnt-1
                If $nMsg = $BUT_1[$i] Then
                        SelectFolder($i)
                EndIf
                If $nMsg = $BUT_2[$i] Then
                        apply($i)
                EndIf
                If $nMsg = $BUT_3[$i] Then
                        ReDefault($i)
                EndIf
        Next

        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
        EndSwitch
WEnd


Func SelectFolder($i)
        WinSetOnTop ( $FormName, "", 0)
        $Var = FileSelectFolder ( "請選擇目錄", "", 1, RegRead ( "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders", $RegName[$i]))
        WinWaitClose ( "瀏覽資料夾", "請選擇目錄")
        WinSetOnTop ( $FormName, "", 1)
        If $Var = "" Then
                Error1()
                GUICtrlSetData ( $Input[$i], RegRead ( "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders", $RegName[$i]))
        Else
                If FileExists ($Var) = 1 Then
                        GUICtrlSetData ( $Input[$i], $Var)
                Else
                        Error2()
                EndIf
        EndIf
EndFunc

Func apply($i)
        If FileExists ($Var) = 1 Then
                RegWrite ( "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders", $RegName[$i],"REG_SZ", GUICtrlRead ($Input[$i]))
        Else
                Error2()
                Return
        EndIf
        Reboot()
EndFunc

Func ReDefault($i)
        RegWrite ( "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders", $RegName[$i], "REG_SZ", $DefaultRoute[$i])
        Reboot()
EndFunc

Func Reboot()
        GUISetState (@SW_HIDE)
        If  MsgBox ( 36, $FormName,"已修改完成"&@CR&"重新啟動電腦後才會生效"&@CR&"是否馬上重新啟動") = 6 Then
                Shutdown (2)
        Else
                Exit
        EndIf
EndFunc

Func Error1()
        If @OSVersion = "WIN_VISTA" Or @OSVersion = "WIN_7" Then
                ToolTip (@CR&"    取消    "&@CR&" ")
        Else
                ToolTip (@CR&"    取消    "&@CR)
        EndIf
        Sleep (1500)
        ToolTip ( "")
EndFunc

Func Error2()
        If @OSVersion = "WIN_VISTA" Or @OSVersion = "WIN_7" Then
                ToolTip (@CR&"    路徑錯誤    "&@CR&" ")
        Else
                ToolTip (@CR&"    路徑錯誤    "&@CR)
        EndIf
        Sleep (1500)
        ToolTip ( "")
EndFunc[/code]

點評

3Q~ 已收下囉^^ (也來研究一下 (呵呵  發表於 2013-2-1 13:15

使用道具

bear1alex1 該會員已被刪除
發表於 2015-6-1 09:11 | 顯示全部樓層
提示: 作者被禁止或刪除 內容自動屏蔽

使用道具

該用戶從未簽到

升級   0%

 樓主| 發表於 2015-6-1 09:54 | 顯示全部樓層
bear1alex1 發表於 2015-6-1 09:11
rictirse版大,這個程式碼看起來,僅僅寫入regedit吧?並沒有幫忙把檔案給複製過去,能否也把檔案給複製過 ...

對這只是一個改路徑 owner 跟 robocopy 或 xcopy 那也只是一兩行的function而已修改起來不困難..

使用道具

bear1alex1 該會員已被刪除
發表於 2015-6-1 10:18 | 顯示全部樓層
提示: 作者被禁止或刪除 內容自動屏蔽

使用道具

該用戶從未簽到

升級   0%

 樓主| 發表於 2015-6-1 10:34 | 顯示全部樓層
bear1alex1 發表於 2015-6-1 10:18
可是小弟遇到的重點是
1. 如果要遷移的帳號目錄是登入使用中的系統管理員的話, 則必需建立及登入使用另一 ...

使用中user 的 file會被lock是正常的
你現在要做的事情我還是不太懂
可以條列式的詳細敘述嗎?
你想達到什麼,目前使用什麼方法

使用道具

bear1alex1 該會員已被刪除
發表於 2015-6-1 10:49 | 顯示全部樓層
提示: 作者被禁止或刪除 內容自動屏蔽

使用道具

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

本版積分規則

小黑屋|Archiver|微剋多資訊(MicroDuo)

GMT+8, 2024-4-16 15:12

Discuz! X

© 2009-2023 Microduo

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