结束U盘所有进程
退出U盘时有时会有程序运行。这时退不出来,可不可以那位大侠写个脚本(程序),结束程序当前所在盘 所有进程 简单表达下吧,E盘运行这个程序,他关掉所有E盘运行程序的进程。如果放D盘,运行,就关掉所有D盘运行的进程。 ????????? 检测当前盘符
然后对比进程路径即可。 那位大大给段代码啊,谢谢啦 $objWMIService = ObjGet("winmgmts:\\.\root\CIMV2:win32_process")
$colItems = $objWMIService.instances_
For $objItem In $colItems
$Pid ="Pid: " & $objItem.ProcessId
$Name = "Name: " & $objItem.Name
$path = "Path: " & $objItem.executablepath
MsgBox(0,'',$Pid&@LF _
&$Name&@LF _
&$path)
Next
刚看到一段代码,是获得程序名字和路径的,高手麻烦修改下 http://www.autoitx.com/forum.php?mod=viewthread&tid=3899&extra=page%3D3
上面代码的地址,高手呢,怎么这么多天了都没有解觉这个问题!!! http://www.autoitx.com/forum.php?mod=viewthread&tid=3899&extra=page%3D3
上面代码的地址,高手呢,怎么这么多天了都没有解觉这个问题!!!
gdygood 发表于 2009-9-21 22:12 http://www.autoitx.com/images/common/back.gif
你都知道上面的代码了 结束所有你U盘盘符运行的进程就完了 结束x盘运行的程序容易,但有很多情况下是外面的程序调用了x盘的东东... 那就需要退出那个不是x盘的程序... afan兄说得对。如果外部程序调用了你U盘中的文件,就必须把这个外部程序结束掉。
其实还有一种方法,外部程序a.exe调用了U盘中的a.txt,那么在a.exe中必然有一个指向a.txt的文件句柄。只要找到这个文件句柄并关闭它也可以实现U盘的卸载。
有关关闭其他进程中的句柄的问题,楼主可以看下这个帖子:http://www.autoitx.com/forum.php?mod=viewthread&tid=9620 afan兄说得对。如果外部程序调用了你U盘中的文件,就必须把这个外部程序结束掉。
其实还有一种方法,外部程序a.exe调用了U盘中的a.txt,那么在a.exe中必然有一个指向a.txt的文件句柄。只要找到这个文件句柄并关闭它 ...
pusofalse 发表于 2009-9-22 01:23 http://www.autoitx.com/images/common/back.gif
高人指点的是,正郁闷如何查看进程打开的句柄以及如何关闭的问题,此贴回复得真是及时,谢谢! Re 11#:
- -|||多谢afan兄的认同,但以后不要再叫高人了,真得是折杀我了。 pusofalse 兄太谦虚了~!论坛有技术的高手肯定也有不少,但平心而论,有技术而又热心的,不多见... 经常遇到pusofalse 兄替大家解答难题,敬佩之心油然而生,叫声高人、大虾,那是脱口而出的~~ 希望兄不要见怪呀~ 呵呵~~~ 几天没来看,有高人回了,去看看,学下,如果做出来了,就贴出来,呵呵
页:
[1]