⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 camouflage.au3

📁 AutoIt脚本
💻 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 + -