autoit 更改个人文件夹的小工具_autoit

V0.3 2008年6月1日
增加“在选项窗口的‘全选'、‘全取消'”的功能。
增加“在主窗口的将链接恢复到默认路径”的选项。

V0.2 2008年5月23日
增加“弹出式子窗口,用于添加项目并动态改变主窗口”的功能。
对更改过的路径,加深背景色突出显示。

V0.1 2008年5月23日
测试通过“我的文档,我的音乐,我的视频,我的收藏,我的桌面”的测试。
完成编程时动态增加选项功能。
#Region ;**** 参数创建于 AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=..\工具\3.2.11.0.1\Aut2Exe\Icons\ce.ico
#AutoIt3Wrapper_Outfile=个人文件夹设置工具.V0.3.exe
#AutoIt3Wrapper_Res_Comment=用于改变个人文件夹的路径,应用后请立即重新启动计算机。
#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"=应用程序数据
 1 "Cookies"=Cookies
 2 "Desktop"=桌面
 3 "Favorites"=收藏夹
 4 "NetHood"=网上邻居,用于存贮添加到网上邻居中的其他计算机的快捷方式。
 5 "Personal"=我的文档
 6 "PrintHood"=打印机,用于存贮添加的打印机的快捷方式。
 7 "Recent"=最近打开文件
 8 "SendTo"=发送到
 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"],["应用程序", _
  "Cookies", "桌面", "收藏夹", "网上邻居", "我的文档", "打印机", "最近打开", _
  "发送到", "开始菜单", "模板", "程序", "启动", "本地设置", "本地数据", "缓存", _
  "历史", "我的图片", "字体", "我的音乐", "CD 烧录", "我的视频"]]
Dim $aIndex[6] = ["2", "3", "5", "17", "19", "21"]
$nNumber = UBound($aIndex)
;用一个8×X的数组放置相关信息,这些信息自aDict数组由aIndex作为索引获得,本数组分别存放的是:项目名,中文,键值,LabelID,InputID,ChangeButtonID,新键值,DefaultButtonID
Dim $avArray[$nNumber][8]
Dim $Form_Main, $Form_Child, $Button_Apply
Dim $TempIndex[$AllItem]

;下面是GUI
MainGUI()

;下面是程序主体
While 1
 Sleep(1000) ; 空循环
WEnd

;下面是子函数
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("个人文件夹设置 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("应用更改", 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轴基础坐标
  YBase   距离坐标0,0的Y轴基础坐标
  XOffset  控件的X轴尺寸+间距
  YOffset  控件的Y轴尺寸+间距
  Scale   Y轴的行控制变量
  Matrix   矩阵系数
  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
时间: 2024-10-03 06:19:36

autoit 更改个人文件夹的小工具_autoit的相关文章

U盘文件夹加密小工具介绍

  U盘的使用已经越来越广泛了,但是使用方便的同时也会带来很多泄密的困扰,于是给U盘加密就变得十分重要了.怎么来给u 盘加密呢?给大家介绍一款软件--"高强度U盘文件夹加密",这款软件采用了独特的安全的加密算法,能非常方便地给你的U盘数据加上一把锁. 它的加密方法非常简单,还可分为"强度压缩加密"和"快速移动加密"两个加密方法. 1.强度压缩加密 强度压缩加密的操作方法与上面讲述的加.解密操作一样,只不过是强度压缩加密相对快速移动加密而言,其最大

Beyond Compare更改过滤文件夹颜色方法

  Beyond Compare更改过滤文件夹颜色方法          具体操作方法如下所示 步骤一:打开Beyond Compare软件,在主页面中选择"文件夹比较"会话,打开会话操作界面.在界面两侧设有"浏览文件夹"按钮,您可以直接比较本地文件夹,也可以通过设置"FTP配置档",对比您FTP客户端的文件夹. 步骤二:单击比较会话菜单栏"工具"按钮,在展开的下拉菜单中选择"选项"命令,打开Beyond

更改Win2003文件夹访问权限

  巧妙更改Win2003文件夹访问权限: 1.在安全策略-安全选项-开启本地账户和共享的安全模式为经典; 2.添加ABCDEFG等用户,设置相应的密码(ABCDEFG系统管理员的密码)),用户组都设置为guest(安全考虑); 3.分别共享ABCDEFG等文件下,权限上面只添加相对应的用户,比方共享的A文件下,权限那只添加A用户,BCDEFG以此类推; 经过上述简单的三个小步骤之后,用户就可以轻松地来更改win2003系统下文件夹的访问权限,实现A用户登录帐户和密码之后,只能访问指定的A文件夹

CodeIgniter实现更改view文件夹路径的方法_php实例

控制view文件夹路径的代码:system/core/loader.php public function add_package_path($path, $view_cascade=TRUE) { $path = rtrim($path, '/').'/'; array_unshift($this->_ci_library_paths, $path); array_unshift($this->_ci_model_paths, $path); array_unshift($this->

excel表-在VB中怎么能够更改某个文件夹下所有的excel中的第二个sheet的名字?

问题描述 在VB中怎么能够更改某个文件夹下所有的excel中的第二个sheet的名字? 我现在在文件夹下放了很多excel表格,现在我想将sheet2的名字全部改成一个另外的名字?请问怎么能够实现? 解决方案 你先枚举指定目录下所有 Excel 文件,对每个枚举到的 Excel 文件执行 sheet1,sheet2,sheet3,改名为1,2,3,VBA中withworksheet("1"),把工作表名字改成变量怎么写,把工作表名字改成变量怎么写") 解决方案二: 多个Exc

win7更改用户文件夹位置方法汇总

相信很多人都在感慨"C盘空间怎么越来越小",作为系统盘,其实很多原装Windows7的电脑硬盘都是不分区的,一个c盘,一个隐藏的恢复盘.而对于工作繁杂,处理文件比较多的人来说,有条理的硬盘空间是日常工作处理文件的第一步,于是很少人会将c盘作为常用盘,于是很多人会总是纠结c盘空间的大小. windows7系统将个人文件夹统统都设置在了c盘,比如缓存,临时文件,程序文件,程序设置文件等等,你一打开浏览器就有缓存,一运行程序就有临时文件,c盘空间咋能不变小呢? 今天就为大家介绍三种方法来修改

Mac电脑怎么更改电脑文件夹颜色或图标

  1.打开 Finder,选择菜单项"显示 - 为图标"(快捷键 Cmd + 1) 2.再次选择菜单项"显示 - 查看显示选项"(快捷键 Cmd + J) ,如图箭头所示处,可以将文件夹背景更改为三种类型. 3.在"背景"项下选择"图片",将合适的图像拖到右侧的小框即可. 设置好的图片仅对当前文件夹有效,所以您可以为不同的文件夹设置不同风格的背景图.如果不满意的话,把"背景"项设置为"白色&qu

DiffSync文件夹比较同步工具如何使用

  DiffSync是一个文件差异同步工具,它功能强大,可以根据文件的大小,创建时间,修改时间,访问时间,文件属性等,进行对比,根据对比结果,进行差异同步.特有的高性能算法,让文件对比,变得如此快速.超快的文件复制功能,让大量文件同步,变的如此轻松.独有的FTP到FTP, FTP到本地硬盘差异更新功能,让FTP上传下载备份,从如变的轻松自如. Diffsync是绿色软件,操作界面清晰易懂 每次同步前,只要按提示配置好同步任务即可,这里特别要注意的是同步的"方向" 同步任务配置好后,按&

查看PE文件内容的小工具——CliPeViewer

CliPeViewer是老刘编写的一个WinForm小程序,能够用来查看托管PE文件中的 各种结构.目前有很多能够查看PE信息的程序,支持.NET的也有.不过, CliPeViewer与他们的最大区别在于,这个小程序更在意原汁原味地暴露一个PE文 件中的内容,尤其是对于文件中的每个结构.每个字段,除了显示了它的值之外 ,还显示出了它在PE文件中的偏移量和原始数据. 坦率地说,CliPeViewer还没有写完.尚欠缺的功能包括:显示IL指令.托管 方法的定义(方法头.异常处理块等),以及对元数据签