gdygood 发表于 2009-9-20 01:27:36

结束U盘所有进程

退出U盘时有时会有程序运行。这时退不出来,可不可以那位大侠写个脚本(程序),结束程序当前所在盘 所有进程

gdygood 发表于 2009-9-20 01:41:16

简单表达下吧,

E盘运行这个程序,他关掉所有E盘运行程序的进程。如果放D盘,运行,就关掉所有D盘运行的进程。

presidentbym 发表于 2009-9-20 07:36:57

?????????

倚栏听风 发表于 2009-9-20 08:43:49

检测当前盘符
然后对比进程路径即可。

gdygood 发表于 2009-9-20 13:09:57

那位大大给段代码啊,谢谢啦

gdygood 发表于 2009-9-20 13:44:25

$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

刚看到一段代码,是获得程序名字和路径的,高手麻烦修改下

gdygood 发表于 2009-9-21 22:12:22

http://www.autoitx.com/forum.php?mod=viewthread&tid=3899&extra=page%3D3
上面代码的地址,高手呢,怎么这么多天了都没有解觉这个问题!!!

xrbenbeba 发表于 2009-9-21 22:17:28

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盘盘符运行的进程就完了

afan 发表于 2009-9-21 22:17:38

结束x盘运行的程序容易,但有很多情况下是外面的程序调用了x盘的东东... 那就需要退出那个不是x盘的程序...

pusofalse 发表于 2009-9-22 01:23:16

afan兄说得对。如果外部程序调用了你U盘中的文件,就必须把这个外部程序结束掉。
其实还有一种方法,外部程序a.exe调用了U盘中的a.txt,那么在a.exe中必然有一个指向a.txt的文件句柄。只要找到这个文件句柄并关闭它也可以实现U盘的卸载。
有关关闭其他进程中的句柄的问题,楼主可以看下这个帖子:http://www.autoitx.com/forum.php?mod=viewthread&tid=9620

afan 发表于 2009-9-22 01:29:00

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

高人指点的是,正郁闷如何查看进程打开的句柄以及如何关闭的问题,此贴回复得真是及时,谢谢!

pusofalse 发表于 2009-9-22 01:31:46

Re 11#:
- -|||多谢afan兄的认同,但以后不要再叫高人了,真得是折杀我了。

afan 发表于 2009-9-22 01:46:30

pusofalse 兄太谦虚了~!论坛有技术的高手肯定也有不少,但平心而论,有技术而又热心的,不多见... 经常遇到pusofalse 兄替大家解答难题,敬佩之心油然而生,叫声高人、大虾,那是脱口而出的~~ 希望兄不要见怪呀~ 呵呵~~~

gdygood 发表于 2009-9-24 08:01:31

几天没来看,有高人回了,去看看,学下,如果做出来了,就贴出来,呵呵
页: [1]
查看完整版本: 结束U盘所有进程