V0.3 2008年6月1日
增加“在選項窗口的‘全選'、‘全取消'”的功能。
增加“在主窗口的將鏈接恢復(fù)到默認路徑”的選項。
V0.2 2008年5月23日
增加“彈出式子窗口,用于添加項目并動態(tài)改變主窗口”的功能。
對更改過的路徑,加深背景色突出顯示。
V0.1 2008年5月23日
測試通過“我的文檔,我的音樂,我的視頻,我的收藏,我的桌面”的測試。
完成編程時動態(tài)增加選項功能。
#Region ;**** 參數(shù)創(chuàng)建于 AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=..\工具\3.2.11.0.1\Aut2Exe\Icons\ce.ico
#AutoIt3Wrapper_Outfile=個人文件夾設(shè)置工具.V0.3.exe
#AutoIt3Wrapper_Res_Comment=用于改變個人文件夾的路徑,應(yīng)用后請立即重新啟動計算機。
#AutoIt3Wrapper_Res_Description=Alex作品
#AutoIt3Wrapper_Res_Fileversion=0.3.1.080601
#AutoIt3Wrapper_Res_LegalCopyright=Alexandrer King
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#CS 注冊表路徑 = HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
0 "AppData"=應(yīng)用程序數(shù)據(jù)
1 "Cookies"=Cookies
2 "Desktop"=桌面
3 "Favorites"=收藏夾
4 "NetHood"=網(wǎng)上鄰居,用于存貯添加到網(wǎng)上鄰居中的其他計算機的快捷方式。
5 "Personal"=我的文檔
6 "PrintHood"=打印機,用于存貯添加的打印機的快捷方式。
7 "Recent"=最近打開文件
8 "SendTo"=發(fā)送到
9 "Start Menu"=「開始」菜單
10 "Templates"=模板
11 "Programs"=「開始」菜單\\程序
12 "Startup"=「開始」菜單\\程序\\啟動
13 "Local Settings"=Local Settings
14 "Local AppData"=Local Application Data
15 "Cache"=Internet緩存文件
16 "History"=歷史
17 "My Pictures"=我的圖片
18 "Fonts"=字體
19 "My Music"=我的音樂
20 "CD Burning"=CD Burning
21 "My Video"=我的視頻
#CE
#include GUIConstants.au3>
#include Array.au3>
Opt("GUIOnEventMode", 1) ; 切換為OnEvent模式
;下面是變量定義
Local Const $AllItem = 22
Global $HomeDriver, $HomePath, $HomeEnvironment, $nNumber
Dim $aDict[3][$AllItem] = [["AppData", "Cookies", "Desktop", "Favorites", "NetHood", "Personal", _
"PrintHood", "Recent", "SendTo", "Start Menu", "Templates", "Programs", _
"Startup", "Local Settings", "Local AppData", "Cache", "History", _
"My Pictures", "Fonts", "My Music", "CD Burning", "My Video"],["應(yīng)用程序", _
"Cookies", "桌面", "收藏夾", "網(wǎng)上鄰居", "我的文檔", "打印機", "最近打開", _
"發(fā)送到", "開始菜單", "模板", "程序", "啟動", "本地設(shè)置", "本地數(shù)據(jù)", "緩存", _
"歷史", "我的圖片", "字體", "我的音樂", "CD 燒錄", "我的視頻"]]
Dim $aIndex[6] = ["2", "3", "5", "17", "19", "21"]
$nNumber = UBound($aIndex)
;用一個8×X的數(shù)組放置相關(guān)信息,這些信息自aDict數(shù)組由aIndex作為索引獲得,本數(shù)組分別存放的是:項目名,中文,鍵值,LabelID,InputID,ChangeButtonID,新鍵值,DefaultButtonID
Dim $avArray[$nNumber][8]
Dim $Form_Main, $Form_Child, $Button_Apply
Dim $TempIndex[$AllItem]
;下面是GUI
MainGUI()
;下面是程序主體
While 1
Sleep(1000) ; 空循環(huán)
WEnd
;下面是子函數(shù)
Func MainGUI()
Local Const $mWidth = 641
Local $mHeight = 81 + $nNumber * 30
$HomeDriver = RegRead("HKEY_CURRENT_USER\Volatile Environment", "HOMEDRIVE")
$HomePath = RegRead("HKEY_CURRENT_USER\Volatile Environment", "HOMEPATH")
$HomeEnvironment = $HomeDriver $HomePath
#Region ### START Koda GUI section ###
$Form_Main = GUICreate("個人文件夾設(shè)置 by Alexandrer King", $mWidth, $mHeight, -1, -1)
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSE")
GUISetFont(9, 800, 0, "微軟雅黑")
$Label_Home = GUICtrlCreateLabel("當前用戶的主路徑:" $HomeEnvironment, 10, 10, 520, 20)
For $Loop1 = 1 To $nNumber
$sTemp1 = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders", $aDict[0][$aIndex[$Loop1 - 1]])
$avArray[$Loop1 - 1][0] = $aDict[0][$aIndex[$Loop1 - 1]]
$avArray[$Loop1 - 1][1] = $aDict[1][$aIndex[$Loop1 - 1]]
$avArray[$Loop1 - 1][2] = $sTemp1
$avArray[$Loop1 - 1][3] = GUICtrlCreateLabel($avArray[$Loop1 - 1][1], 10, 10 + 30 * $Loop1, 60, 20)
$avArray[$Loop1 - 1][4] = GUICtrlCreateInput($avArray[$Loop1 - 1][2], 70, 10 + 30 * $Loop1, 490, 20)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlSetBkColor(-1, 0xf0f0f0) ; 淡色
$avArray[$Loop1 - 1][5] = GUICtrlCreateButton("C", 570, 10 + 30 * $Loop1, 30, 20)
GUICtrlSetOnEvent(-1, "PointFolder")
$avArray[$Loop1 - 1][7] = GUICtrlCreateButton("D", 600, 10 + 30 * $Loop1, 30, 20)
GUICtrlSetOnEvent(-1, "PointDefault")
Next
$Button_Child = GUICtrlCreateButton("配置項目", 10, $mHeight - 40, 70, 25)
GUICtrlSetOnEvent(-1, "ChildGUI")
$Button_Apply = GUICtrlCreateButton("應(yīng)用更改", 550, $mHeight - 40, 70, 25)
GUICtrlSetOnEvent(-1, "WriteREG")
GUICtrlSetState(-1, $GUI_DISABLE)
GUISetState(@SW_SHOW)
#EndRegion ### START Koda GUI section ###
EndFunc ;==>MainGUI
Func ChildGUI()
#CS ===================================================================
下面是常見的矩陣式排布算法:
XBase 距離坐標0,0的X軸基礎(chǔ)坐標
YBase 距離坐標0,0的Y軸基礎(chǔ)坐標
XOffset 控件的X軸尺寸+間距
YOffset 控件的Y軸尺寸+間距
Scale Y軸的行控制變量
Matrix 矩陣系數(shù)
positionX X軸坐標
positionY Y軸坐標
#CE ===================================================================
GUIDelete($Form_Main)
Local Const $Matrix = Round(Sqrt($AllItem), 0)
Local Const $XOffset = 90, $YOffset = 30
Local Const $XBase = 10, $YBase = 10
Local $Scale = 0
Local Const $cWidth = 481, $cHeight = 241
$Form_Child = GUICreate("選擇要配置的項目", $cWidth, $cHeight, -1, -1)
GUISetOnEvent($GUI_EVENT_CLOSE, "NewGUI")
GUISetFont(-1, 8, 400, 0, "微軟雅黑")
GUICtrlCreateLabel("請在下面的列表中勾選需要配置的項目", 10, 15, 300, 20)
For $Loop4 = 1 To $AllItem
$positionX = $XBase + Mod(($Loop4 - 1), $Matrix) * $XOffset
If $positionX = $XBase Then
$Scale = $Scale + 1
EndIf
$positionY = $YBase + $Scale * $YOffset
$TempIndex[$Loop4 - 1] = GUICtrlCreateCheckbox($aDict[1][$Loop4 - 1], $positionX, $positionY, 90, 20)
Next
While UBound($aIndex)
GUICtrlSetState($TempIndex[_ArrayPop($aIndex)], $GUI_CHECKED)
WEnd
$Button_SelectAll = GUICtrlCreateButton("全選", $cWidth / 2 + 60, $cHeight - 40, 50, 25)
GUICtrlSetOnEvent(-1, "SelectAll")
$Button_UnselectAll = GUICtrlCreateButton("全取消", $cWidth / 2 - 110, $cHeight - 40, 50, 25)
GUICtrlSetOnEvent(-1, "UnselectAll")
$Button_ChildExit = GUICtrlCreateButton("確定", $cWidth / 2 - 30, $cHeight - 40, 60, 30)
GUICtrlSetOnEvent(-1, "NewGUI")
GUISetState(@SW_SHOW)
EndFunc ;==>ChildGUI
Func SelectAll()
For $Loop6 = 1 To $AllItem
GUICtrlSetState($TempIndex[$Loop6 - 1], $GUI_CHECKED)
Next
EndFunc ;==>SelectAll
Func UNselectAll()
For $Loop7 = 1 To $AllItem
GUICtrlSetState($TempIndex[$Loop7 - 1], $GUI_UNCHECKED)
Next
EndFunc ;==>UNselectAll
Func NewGUI()
Dim $aIndex[1]
For $Loop5 = 1 To $AllItem
If GUICtrlRead($TempIndex[$Loop5 - 1]) = $GUI_CHECKED Then
_ArrayAdd($aIndex, $Loop5 - 1)
EndIf
Next
If UBound($aIndex) = 1 Then
$yonc = MsgBox(0x1024, "注意", "您取消了 全部 的選項" @CRLF _
"這將使本程序沒有可配置的項目" @CRLF _
"點 是> 重新選擇, 點 否> 退出本程序.")
If $yonc = 6 Then
Return
Else
Exit
EndIf
EndIf
_ArrayDelete($aIndex, 0)
$nNumber = UBound($aIndex)
ReDim $avArray[$nNumber][8]
MainGUI()
GUIDelete($Form_Child)
EndFunc ;==>NewGUI
Func WriteREG()
For $Loop3 = 1 To $nNumber
If $avArray[$Loop3 - 1][6] > "" Then
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders", $avArray[$Loop3 - 1][0], "REG_EXPAND_SZ", $avArray[$Loop3 - 1][6])
$avArray[$Loop3 - 1][6] = ""
GUICtrlSetBkColor($avArray[$Loop3 - 1][4], 0xf0f0f0) ; 淡色
EndIf
Next
GUICtrlSetState($Button_Apply, $GUI_DISABLE)
EndFunc ;==>WriteREG
Func PointFolder()
Local $iIndex, $sNEWFolder
$iIndex = _ArraySearch($avArray, @GUI_CtrlId, 0, 0, 0, 1, 1, 5)
$sNEWFolder = FileSelectFolder("指定新的位置", "", 7)
If Not @error Then
$avArray[$iIndex][6] = $sNEWFolder
GUICtrlSetData($avArray[$iIndex][4], $sNEWFolder)
GUICtrlSetBkColor($avArray[$iIndex][4], 0xd5f0f0) ; 淡色略深
GUICtrlSetState($Button_Apply, $GUI_Enable)
EndIf
EndFunc ;==>PointFolder
Func PointDefault()
Local $iIndex, $sNEWFolder
$iIndex = _ArraySearch($avArray, @GUI_CtrlId, 0, 0, 0, 1, 1, 7)
$sNEWFolder = RegRead("HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders", $avArray[$iIndex][0])
If Not @error Then
$sTempNEWFolder = StringReplace($sNEWFolder, "%USERPROFILE%", $HomeEnvironment)
$avArray[$iIndex][6] = $sTempNEWFolder
GUICtrlSetData($avArray[$iIndex][4], $sTempNEWFolder)
Else
$avArray[$iIndex][6] = ""
GUICtrlSetData($avArray[$iIndex][4], "")
EndIf
GUICtrlSetBkColor($avArray[$iIndex][4], 0xd5f0f0) ; 淡色略深
GUICtrlSetState($Button_Apply, $GUI_Enable)
EndFunc ;==>PointDefault
Func CLOSE()
Exit
EndFunc ;==>CLOSE
- screenshot2.png (30.95 KB)
-
2008-6-1 21:04
- 打包下載autotiPersonal.v0.3.b080601.rar
您可能感興趣的文章:- Python+AutoIt實現(xiàn)界面工具開發(fā)過程詳解
- python+selenium+autoit實現(xiàn)文件上傳功能
- AutoIt腳本的反編譯和代碼格式化問題分析
- 使用AutoIT實現(xiàn)自動登錄/退出客戶端軟件,刪除日志
- AutoIt3和按鍵精靈的功能對比
- autoit入門教程小結(jié)
- autoit GUI相關(guān)知識
- Python selenium使用autoIT上傳附件過程詳解