用于管理和修改 Windows 用户 Shell Folders 的工具,它通过读取和修改注册表的 User Shell Folders 项目,实现对用户特殊文件夹路径的自定义设置和管理。
自定义Shell文件夹.ahk
Gui, Add, Button,gLoadw,刷新列表(&R)
Gui, Add, Button, x+15 gEditVar, 编辑该值(&E)
Gui, Add, Button, x+15 gopenfolder, 跳转到目录(&E)
Gui, Add, Button, x+15 gRegedit, 跳转到注册表(&O)
Gui, Add, Button, x+20 gAbout, 关于(&A)
Gui, Add, ListView, xm Grid w600 h400 gListView vEV,Shell文件夹|目录路径
Gui,Show,,自定义User Shell Folders
Gui +resize
Gui 2:Add, Text,,Shell文件夹
Gui 2:Add, Edit,vVarname w250
Gui 2:Add, Text,, 目录路径
Gui 2:Add, Edit,vVarvalue w250
Gui 2:Add, Button,x+5 gselectfile,&.
Gui 2:Add, Button,x10 gVarsave w280,写入注册表(&S)
Gui,2:+Owner1 +ToolWindow
WinW = 500
XPos1 := WinW - 100
XPos2 := XPos1 + 40
Gui 3:Font,s14,Arial
text=版本:1.0。 该Autohotkey脚本修改于env.ahk。用途:通过修改注册表,自定义User Shell Folders.
Gui 3:+ToolWindow +AlwaysOnTop
Gui 3:Add, Text,vtext4 x%XPos2% y35 BackgroundTrans , %text%
Gui 3:Add, Text,x0 y5 w%winw% center, 自定义User Shell Folders
GuiControlGet,Text4,3:Pos
Text4H+=10
Gui 3:Add, Text, vText1 w4024 h%Text4H% x-1524 y30
GuiControl,3:+0x12,Text1
Gosub,Loadw
Return
selectfile:
FileSelectfolder,tt,,,选择目录
GuiControl,, Varvalue, %tt%
GuiControl,choose,dir,%tt%
Return
GuiEscape:
GuiClose:
Critical
ExitApp
return
GuiSize:
if A_EventInfo = 1
return
GuiControl, Move, EV, % "H" . (A_GuiHeight - 45) . "W" . (A_GuiWidth - 20)
return
Loadw:
LV_Delete()
Loop,HKCU,Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders,1,0
{
RegRead, value
LV_Add("",A_LoopRegName,value)
LV_ModifyCol()
}
return
Varsave:
Gui 2:Submit
RegWrite,REG_SZ,HKCU,Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\,%varname%,%varvalue%
send,!R
Return
EditVar:
FocusedRowNumber := LV_GetNext(0, "F")
if not FocusedRowNumber
Return
else{
LV_GetText(varname, FocusedRowNumber, 1)
LV_GetText(varvalue, FocusedRowNumber, 2)
gui 2:show,,编辑该值
}
GuiControl,2:,varname,% varname
GuiControl,2:,varvalue,% varvalue
GuiControl,2:disable,Varname
Return
openfolder:
FocusedRowNumber := LV_GetNext(0, "F")
if not FocusedRowNumber
Return
LV_GetText(varvalue, FocusedRowNumber, 2)
IfInString, varvalue, `%USERPROFILE`%
{
EnvGet, Profile, USERPROFILE
StringReplace,varvalue,varvalue,`% ,,1
StringReplace,varvalue,varvalue,USERPROFILE,%Profile%
}
Run, %varvalue% ;,,UseErrorLevel
Return
Regedit:
RegWrite, REG_SZ, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Applets\Regedit, LastKey, HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
Run, regedit.exe
Return
3GuiEscape:
3GuiClose:
AboutX = 1
Return
About:
Gui 3:Show, w%WinW% h70, 关于
XPos2 := WinW - 60
GuiControl 3:Move, Text4, x%XPos2%
Loop {
GuiControl 3:Move, Text4,% "x" XPos2--
GuiControlGet Text4, 3:Pos
Sleep 10
If (text4X + text4W < 0 || AboutX) {
AboutX =
Break
}
}
Gui 3:Hide
Return
ListView:
if (A_GuiEvent = "DoubleClick")
{
LV_GetText(varname, A_EventInfo, 1)
LV_GetText(varvalue, A_EventInfo, 2)
gui 2:show,,编辑该值
GuiControl,2:,varname,% varname
GuiControl,2:,varvalue,% varvalue
GuiControl,2:disable,Varname
}
return
声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。

评论(0)