这真的是一个很有意思的东东。还是听一个懂点技术的网友说vbs可以做这样一个东东。我才突发兴致做了一个。其实实现的原理并不算难。就是要在电脑和u盘里各建一个vbs文件。然后两个vbs文件相互调用。
为了把原理描述地浅显且易懂。我们姑且把这两个文件命名为computer.vbs和up.vbs。
在computer.vbs里主要做这两件事情。第一件事就是遍历电脑上所有的驱动器,判断有没有移动磁盘链接到电脑上,而且要判断接入电脑的这个移动磁盘里是否存在up.vbs这个文件。如果有,则调用up.vbs文件且立即终止自身的运行,如果没有,则程序会接着做第二件事。这第二件事,就是杀死电脑中的wps.exe和word.exe这两个进程。
在vbs中呢就做了一件事。那就是判断当前的驱动器是否与电脑脱离,如果脱离,则调用computer.vbs这个脚本文件且立即终止自身的运行,如果没有脱离,那将不做处理。
下面就是我这两个vbs脚本文件的代码。我贴出来与大家雅俗共赏。哈哈哈哈哈哈哈哈哈哈哈哈哈哈。
1,computer.vbs
<pre class="vb" name="code">On error Resume Next
Err.clear
'更改注册表,将computer.vbs加入启动项
Set ws = CreateObject("wscript.shell")
str = "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\"&Wsh.ScriptName
set startup = ws.regread(str)
If Err.Number < 0 then
ws.regWrite str,Chr(34) & Wsh.ScriptFullName & Chr(34)
End If
Do
uPath = findup()
if uPath Then
ws.run uPath&"\u盘\aa.vbs",0
Wsh.quit
Else
Call taskKill()
End if
loop
'杀死wps和word的方法
function taskKill()
Set processService = getobject("winmgmts:\\.\root\cimv2")
Set processItems = processService.execQuery("Select * from Win32_Process where name = 'wps.exe' or name = 'word.exe'")
For Each ps In processItems
ps.terminate
Next
end Function
'检索u盘的方法
function findup()
Set fso = CreateObject("scripting.filesystemobject")
Set objdrives = fso.Drives
For Each objdrive In objdrives
If objdrive.Drivetype = 1 Then
If fso.fileExists(objdrive.Path&"\u盘\up.vbs") Then
findup = objdrive.Path
Exit for
End if
End if
Next
Set fso = nothing
end function
2,up.vbs
<pre class="vb" name="code">On Error Resume Next
Set ws = CreateObject("wscript.shell")
Do
If IsEmpty(findup()) Then
ws.run "C:\Users\Administrator\Desktop\computer.vbs",0
Wsh.quit
End if
Loop
function findup()
Set fso = CreateObject("scripting.filesystemobject")
Set objdrives = fso.Drives
For Each objdrive In objdrives
If objdrive.Drivetype = 1 Then
If fso.fileExists(objdrive.Path&"\u盘\up.vbs") Then
findup = objdrive.Path
Exit for
End if
End if
Next
Set fso = nothing
end function
哈哈哈哈 !大家有没有发现这两个文件当中的findup这个函数是一模一样的。哈哈,当时我写的时候也没有想到能复用。