如何将VBS停止

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将VBS停止相关的知识,希望对你有一定的参考价值。

我在网上看了个VBS的篇上去后不回停止

显然是进入了死循环,按ctrl+alt+del后选择[任务管理器]-[进程]后立即按住ctrl键,在里面找到wscript.dll,选中后右键选择[结束任务]即可。

例如"Hello"+"World"="HelloWorld" ,have you understood? 你还记得InputBox函数的返回值吗? 是字符串! 这就看出问题了吧, 在编程中"1"不等于(<>)1, "1"是一个字符, 而1是一个数, 所以a,b都是字符串变量, "1"+"2"="12"。

这就好像我们小时跟伙伴开玩笑问他们1+1=?一样, 我们总是笑着说"错啦,应该是11".但为什么, a可以*2却不发生错误呢? 这时VBS比较智能的一个表现。

如果字符串代表一个数, 但不参加数学运算, 而是参加字符串运算(合并)则当作字符串处理, 所以你看到a+b=12, 这时候a+b的结果(12)是一个字符串, 当它要乘以2的时候就被强制转换成了数字12, 这样我就得到了结果24。


   




参考技术A 方法一:
ctrl+shift+esc打开任务管理器,=
结束wscript.exe

方法二:
开始-运行-
wscript //h:cscript
-确定
这样每次运行vbs会开一个黑窗口,想关闭vbs的话关闭那个窗口就可以了本回答被提问者和网友采纳
参考技术B 下面的脚本在XP下正常运行,在win2000运行时出错,Microsoft VBScript 运行时错误 (17, 3) : 对象不支持此属性或方法: 'objprocess.commandline'
什么原因,win2000运行这个实例还需要安装什么东西吗
'显示所有进程
dim oie,doc1,fso
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "impersonationLevel=impersonate!\\" & strComputer & "\root\cimv2")
Set colprocess = objWMIService.ExecQuery _
("Select * from Win32_process")
for each objprocess in colprocess
a=20-len(objprocess.caption)
b=10-len(objprocess.handle)
for i = 0 to a
p=p&"."
next
for i = 0 to b
q=q&"."
next
pross= pross&objprocess.caption&p&objprocess.handle&q&objprocess.commandline&vbcrlf
p=""
q=""
next
no="总进程数为:"&colprocess.count
b="-------------------------------------------------------------------------------"&vbcrlf
set oie=wscript.createobject("internetexplorer.application")
oie.navigate "www.进程.com"
oie.visible = 1
oie.toolbar = 0
oie.statusbar= 1
oie.width = 900
oie.Height =500
do while (oie.busy) : loop
set doc1=oie.document
doc1.open
doc1.writeln "<html><head><title>显示进程</title></head>"
doc1.writeln "<BACKGROUND= 'E:\picture\作品\PhoXo3.jpg' >"
doc1.writeln "<pre><center><font color=red size=5>进程信息</font></center><p><font color=black size=2>"
doc1.writeln b&pross&b&no
doc1.writeln "┏━ ┏━┓ ┏━┓┎ ┏━ "
doc1.writeln "┣━ ┣━┫ ┃ ┓┃ ┣━ "
doc1.writeln "┗━ ┛ ┗ ┗━┛┗━ ┗━ "
doc1.writeln "-------------------------------------------------------------------------------"

doc1.writeln ""
doc1.writeln ""
doc1.writeln "<pre><center><font color=white size=1>CopyRight To ZhangBo</font></center>"
doc1.writeln "<pre><center><font color=white size=1>Zhangbo846@hotmail.com</font></center>"
doc1.writeln "</font></p></pre></body></html>"
doc1.close

如何让这个Bat批处理文件在后台运行?不用vbs

如何让这个Bat批处理文件(shutdown -s -t 10)在后台运行或者隐藏,反正是看不见关机倒计时提示框就可以?不用vbs。就是一个自动关机的bat。

1、原代码shutdown -s -t 10改为如下代码,并另存为D:\run.bat
@echo off
ping 127.1 -n 10
shutdown -s -f -t 0
2、以下代码另存为xx.vbs
createObject("wscript.shell").run "d:\run.bat",0
3、运行xx.vbs即可

PS:纯P无法做到隐藏窗口,如果一定不用VBS,可以考虑用AT命令。
如果你只想要“看不见关机倒计时提示框”,那么1中的代码就可使用,不用再用2中的VBS。有问题百度HI我
参考技术A 批处理的窗口隐藏好说 但是shutdown的信息框是无法隐藏的 如果想不提示关机倒计时直接运行shutdown -s -t 0就可以 不过这样就没有延时了 你可以利用ping命令做延时 然后直接运行shutdown -s -t 0
具体命令

@if %1* neq 0* mshta vbscript:createobject("wscript.shell").run("%~s0 0",0)(window.close)&exit
::隐藏CMD窗口
ping -n 11 127.0.0.1>nul
::10秒延时
shutdown -s -t 0

利用ping两次发送消息之间的间隔时间。ping在发送多个消息时,在得到上一次消息的回应后,它会再等待1秒的时间才发送下一次消息,而这个回应时间因机型、系统和网络配置而不同,其中IP地址尤其关键,只有本地的回送地址 127.0.0.1 因为是立即回应所以才是相对恒定的,其他地址大多会产生显著的差异。此种方法要等待更大的时间,是指定发送的消息数为等待的时间加一,因为第一个消息是不等待的,IP 地址必须是 127.0.0.1 。
顺便说下利用ping命令做延时误差在0.2毫秒左右,所以可以用到不要求非常精准的批处理当中。
参考技术B 哈 楼主的要求还真苛刻啊
其实用vbs是比较简单的办法
但是还有其他方法的
大家忽略了而已
使用windows自带的“计划任务”哈
设置成登录时运行不就行了

例如我的:
action:start a program
details:"D:\HaPpY\arp private.bat" 0
参数为0是隐式运行

另外是vista系统
参考技术C 光用批处理是不行的,还是建议你用VBS。把下面代码保存为VBS,绝对看不到任何提示框!

wscript.sleep 10000
createObject("wscript.shell").run "cmd /c shutdown -s -f -t 0",0

以上是关于如何将VBS停止的主要内容,如果未能解决你的问题,请参考以下文章

如何制作关掉一个窗口增加两个窗口的vbs?

如何让这个Bat批处理文件在后台运行?不用vbs

如何让英雄联盟启动后执行vbs

如何将文件删除到 shell:从 vbs 启动?

如何将多个变量从 VBS 传递到批处理脚本?

如何让一个vbs文件开机自启