返回列表 回复 发帖 点我体验网上斗地主的乐趣

[自创功能] 【2009年01月17日更新】安全删除可移动存储设备

相关搜索: 移动存储, 设备, 删除
此脚本可以:
      安全删除最后添加的可移动存储设备(比如 U 盘、手机等)。

安全删除.png
2008-11-17 17:06


直接下载脚本: 安全删除可移动存储设备.ahk (424 Bytes)
____________________脚本如下____________________

;功能:安全删除最后添加的可移动存储设备。比如先插了U盘,最后又连了手机,那么只安全删除最后添加的手机。
;天堂之门 menk33@163.com 2009年1月17日
Run %windir%\system32\control.exe hotplug.dll ;调用安全删除硬件窗口
WinWait 安全删除硬件
ControlSend SysTreeView321, {End}
;定位到最后添加的设备
ControlSend Button2, s ;按下停止按钮
WinWait 停用硬件设备
ControlSend Button1, {Enter}
;按下确定
WinClose 安全删除硬件
ExitApp

____________________脚本如上____________________

说明:可以自行指定热键(比如 Win+Del)来调用此脚本。

       写此脚本时,第一次知道带 Alt+字母 这种快捷方式的控件,如果焦点在同类控件上,可以直接按相应的字母来激活带此字母快捷调用的控件。比如在运行对话框里,有一个“浏览(B)”按钮,如果焦点在“确定”或者“取消”按钮上的话,直接按字母 B 也可以激活这个“浏览”按钮……

更多:
       4 楼的 WZ520 扩展了一下判断“安全删除硬件”窗口中是否有可删除的移动存储设备。确实有需要的朋友可以参考下。
不错,非常有用的脚本。
但是如果在什么可移动设备都没插的情况下不小心运行了这个脚本的话,就会停在“安全删除硬件”那里。
稍微改了一下脚本,这样可以随便运行了:

Run,%windir%\system32\control.exe hotplug.dll ;调用安全删除硬件窗口
WinWait 安全删除硬件
ControlGet, IfStopEnabled, Enabled, ,Button2 ;检查停止按钮是否能按下
If IfStopEnabled { ;如果能按下,才进行停止设备的操作,否则直接关闭窗口并退出脚本
  ControlSend,Button2,s ;按下停止按钮
  WinWait 停用硬件设备
  ControlSend,Button1,{Enter} ;按下确定
}
WinClose 安全删除硬件
ExitApp
呵呵,一般不可能乱按到 Win+Del
新手么?请你提问前:
1.看看帮助里的指南并且去用下示例。-> 2.看看帮助里的命令列表有无你想要的功能。-> 3.创建你自己的脚本。在你遇到困难时查阅帮助根目录文档和 FAQ 。-> 4.如果你需要帮助或示例,请搜索:a.论坛搜索 (包括官方英文论坛) b.搜索引擎 -> 5.如果你仍然陷在问题中,到论坛的“提问交流”版块发帖。-> 6.另外论坛的“脚本展览”版块 AHK 相关网站博客大收集帖官方 Wiki autohotkey.net 都是可以利用的。
关于这个脚本,刚才有人PM我说这脚本不是先删除最后插入的设备的。
而天堂之门的原帖里却写着是删除最后插入的设备的……
由于我平常都是只插一个U盘用,所以没多做测试。
经他这么一说,我测试了一下,插了2个U盘,结果是第一个插入的被删除了。

总结一下:

“天堂之门”的原脚本中写道:“功能:安全删除最后添加的可移动存储设备。比如先插了U盘,最后又连了手机,那么只安全删除最后添加的手机。”

PM我的人原话:“删除的不是我刚插入的优盘,而把机器的网卡给删了,怎样设定才能让它删除最后插入的设备呢?”
我的测试结果:2个U盘,结果是先删除第一个。


不知还有没有人测试过……


总之我又改了一下脚本,这次应该能删除最后一个了(在我机器上测试成功):

Run,%A_WinDir%\system32\control.exe hotplug.dll ;调用安全删除硬件窗口
WinWait 安全删除硬件
ControlGet, IfStopEnabled, Enabled, ,Button2 ;检查停止按钮是否能按下
If IfStopEnabled { ;如果能按下,才进行停止设备的操作,否则直接关闭窗口并退出脚本
  ControlSend, SysTreeView321, {End} ;定位到最后添加的设备
  ControlSend,Button2,s ;按下停止按钮
  WinWait 停用硬件设备
  ControlSend,Button1,{Enter} ;按下确定
}
WinClose 安全删除硬件
return

[ 本帖最后由 wz520 于 2009-1-17 15:16 编辑 ]
-_-||

确实是后面添加的设备在列表的底部。我用两个 U 盘做了个测试,证实了这点……

不知道以前写这个脚本的时候是怎么得出那个结论的……
总之给之前用这个脚本的无辜的人,说声对不起~

现在把那句移动到列表底部的命令加进去。
新手么?请你提问前:
1.看看帮助里的指南并且去用下示例。-> 2.看看帮助里的命令列表有无你想要的功能。-> 3.创建你自己的脚本。在你遇到困难时查阅帮助根目录文档和 FAQ 。-> 4.如果你需要帮助或示例,请搜索:a.论坛搜索 (包括官方英文论坛) b.搜索引擎 -> 5.如果你仍然陷在问题中,到论坛的“提问交流”版块发帖。-> 6.另外论坛的“脚本展览”版块 AHK 相关网站博客大收集帖官方 Wiki autohotkey.net 都是可以利用的。
有个问题,使用这个脚本后,总是先删除我的笔记本光驱,再删除U盘,请问有什么办法忽略光驱吗?
返回列表