📄 camouflage.au3
字号:
#cs
发现AutoIt很强大,所以想尝试利用AutoIt写一些程序,此脚本完成了对于一般文件夹的伪装,并建立了特殊目录"lock..\"
此特殊目录可以防止伪装的文件夹被简单的删除或者复制。
陈大卫 20080718
#ce
#include <GuiConstantsEx.au3>
#include <AVIConstants.au3>
#include <TreeViewConstants.au3>
Opt("GUIOnEventMode", 1) ; 切换为 OnEvent 模式
Opt("TrayIconHide", 1) ;隐藏托盘图标
Opt("GUICloseOnESC", 1) ;按下 ESC 将关闭窗
; GUI
$handle_win=GuiCreate("文件夹伪装", 320, 280)
GUISetOnEvent($GUI_EVENT_CLOSE, "closewindow")
; MENU
$filemenu = GUICtrlCreateMenu ("帮助(&H)")
$fileitem = GUICtrlCreateMenuitem ("关于(&A)",$filemenu)
GUICtrlSetOnEvent(-1, "about")
$separator1 = GUICtrlCreateMenuitem ("",$filemenu,2) ; 分隔线
$exititem = GUICtrlCreateMenuitem ("退出(&X)",$filemenu)
GUICtrlSetOnEvent(-1, "closewindow")
;伪装
GUICtrlCreateGroup (" 伪装 ", 10, 10, 300, 130)
GUICtrlCreateLabel("目标文件夹",20,35)
GUICtrlCreateLabel("伪装类型",20,70)
$inputdir=GuiCtrlCreateInput("",90,32,150)
$selectmode=GUICtrlCreateCombo("回收站",90,68,200)
GUICtrlSetData(-1,"我的电脑|控制面板|打印机|拔号网络|网上邻居|收藏夹|我的文档|Internet 临时文件|公文包","回收站") ; 添加其它项目并设置新的默认值
GUICtrlCreateButton ("浏览...", 250, 30)
GUICtrlSetOnEvent(-1, "getdir")
$check = GUICtrlCreateCheckbox ("增强防删除功能", 20, 110, 120, 20)
GUICtrlSetState(-1,$GUI_CHECKED)
$BtnCamouflage=GUICtrlCreateButton("伪装",140,105,60)
GUICtrlSetOnEvent(-1, "camouflage")
GUICtrlCreateGroup ("",-99,-99,1,1) ;封闭组框
;解锁
GUICtrlCreateGroup (" 解锁 ", 10, 150,300, 100)
GUICtrlCreateLabel("解锁文件夹",20,175)
$inputdir2=GuiCtrlCreateInput("",90,172,150)
GUICtrlSetState(-1,$GUI_FOCUS)
GUICtrlCreateButton ("浏览...", 250, 170)
GUICtrlSetOnEvent(-1, "getdir2")
GUICtrlSetState(-1,$GUI_DEFBUTTON)
$BtnOpen=GUICtrlCreateButton("打开(&O)",40,210,60)
GUICtrlSetOnEvent(-1, "opendir")
$BtnClose=GUICtrlCreateButton("关闭(&C)",100,210,60)
GUICtrlSetOnEvent(-1, "closedir")
$BtnUnlock=GUICtrlCreateButton("解锁",180,210,60)
GUICtrlSetOnEvent(-1, "Unlock")
GUICtrlCreateGroup ("",-99,-99,1,1) ;封闭组框
GuiSetState()
While True
Sleep(1000)
WEnd
Func camouflage();伪装
$dir=GUICtrlRead($inputdir)
$mode=GUICtrlRead ($selectmode)
Select
Case $mode="回收站"
$mode="回收站.{645FF040-5081-101B-9F08-00AA002F954E}"
Case $mode="我的电脑"
$mode="我的电脑.{20D04FE0-3AEA-1069-A2D8-08002B30309D}"
Case $mode="控制面板"
$mode="控制面板.{21ec2020-3aea-1069-a2dd-08002b30309d}"
Case $mode="打印机"
$mode="打印机.{2227a280-3aea-1069-A2de-08002b30309d}"
Case $mode="拔号网络"
$mode="拔号网络.{992CFFA0-F557-101A-88EC-00DD010CCC48}"
Case $mode="网上邻居"
$mode="网上邻居.{208D2C60-3AEA-1069-A2D7-08002B30309D}"
Case $mode="收藏夹"
$mode="收藏夹.{1a9ba3a0-143a-11cf-8350-444553540000}"
Case $mode="我的文档"
$mode="我的文档.{450D8FBA-AD25-11D0-98A8-0800361B1103}"
Case $mode="Internet 临时文件"
$mode="Internet 临时文件.{7BD29E00-76C1-11CF-9DD0-00A0C9034933}"
Case $mode="公文包"
$mode="公文包.{85BBD920-42A0-1069-A2E4-08002B30309D}"
Case Else
Return "error"
EndSelect
If StringRight($dir,1)="\" then $dir=StringLeft($dir,stringlen($dir)-1)
$count=StringSplit($dir, "\" )
If $count[0]=1 Then
MsgBox(0,"提示","仅可以伪装文件夹,不能伪装磁盘分区,请重新选择")
Return
EndIf
$basedir=StringLeft($dir,stringlen($dir)-StringLen($count[$count[0]]))
$objectdir=$basedir & $mode
DirMove($dir,$objectdir)
if GUICtrlRead($check)=1 then
FileChangeDir($objectdir)
RunWait(@ComSpec & " /c " & 'md lock..\',$objectdir,@SW_HIDE)
EndIf
MsgBox(0,"","伪装完成")
Run("explorer " & $basedir)
Exit
EndFunc
Func opendir();打开伪装的目录
askpassword()
$dir=GUICtrlRead($inputdir2)
If include($dir,"{")=False Or include($dir,"}")=False Or include($dir,"-")=False Then
MsgBox(0,"提示","无效文件夹,请重新选择.")
Return
EndIf
RunWait(@ComSpec & " /c " & "subst z: " & $dir,"",@SW_HIDE)
Run("explorer z:")
EndFunc
Func closedir();关闭伪装目录的磁盘映射
RunWait(@ComSpec & " /c " & "subst z: /d","",@SW_HIDE)
EndFunc
Func Unlock();解锁
askpassword()
$dir=GUICtrlRead($inputdir2)
If include($dir,"{")=False Or include($dir,"}")=False Or include($dir,"-")=False Then
MsgBox(0,"提示","无效文件夹,请重新选择.")
Return
EndIf
FileChangeDir($dir)
RunWait(@ComSpec & " /c " & 'rd lock..\',$dir,@SW_HIDE)
$count=StringSplit($dir,".")
$dirobject=StringLeft($dir,Stringlen($dir)-StringLen($count[$count[0]])-1)
DirMove($dir,$dirobject)
Sleep(1000)
DirRemove($dir, 0)
Run("explorer " & $dirobject)
Exit
EndFunc
Func getdir2();得到解锁路径
$dir=FileSelectFolder("请选择一个文件夹:", "")
ControlSetText("文件夹伪装","",$inputdir2,$dir)
EndFunc
Func getdir();得到伪装路径
$dir=FileSelectFolder("请选择一个文件夹:", "")
ControlSetText("文件夹伪装","",$inputdir,$dir)
EndFunc
Func about();关于
MsgBox(0,"","简单的文件夹伪装程序,密码:芝麻开门" & @CRLF & "作者: 陈大卫")
EndFunc
Func closewindow();退出
Exit
EndFunc
Func include($str,$flag);查找是否包含某特定字符串
$count=StringSplit($str,$flag)
If $count[0]=1 Then
Return False
Else
Return True
EndIf
EndFunc
Func askpassword();密码验证
$answer=InputBox("请输入打开或解锁密码","你的口令是: ","","*")
If $answer<>"zhimakaimen" Then Exit
EndFunc
Exit
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -