使用VBScript实现记事本自动写入Hello时出现重复打开问题求助
解决VBScript反复打开记事本的问题
嘿,我一眼就瞅出问题大概率出在哪了——你是不是把这个脚本的文件名存成了notepad.vbs?
问题根源
当你在脚本里调用WshShell.Run "notepad"时,Windows的文件执行优先级会优先找当前目录下同名的可执行/脚本文件,而不是直接调用系统自带的notepad.exe。如果你的脚本文件名是notepad.vbs,那这行代码就会反复启动你的脚本本身,导致无限循环,看起来就像记事本一直在反复打开。
两种解决方案
方案一:修改脚本文件名
把脚本改成和系统程序不重名的名字,比如HelloNotepad.vbs,这样Run "notepad"就会正常调用系统记事本了。方案二:指定记事本完整路径
在Run命令里直接写记事本的绝对路径,强制调用系统程序,避免路径混淆:WScript.Sleep 1000 Set WshShell=WScript.CreateObject("WScript.Shell") WshShell.Run "C:\Windows\System32\notepad.exe" WScript.Sleep 100 WshShell.AppActivate "Notepad" WScript.Sleep 500 WshShell.SendKeys "Hello" WScript.Sleep 500
改完之后再运行脚本,就只会打开一次记事本并写入「Hello」啦。
内容的提问来源于stack exchange,提问作者ShaggyDishu
相关产品推荐
相关产品推荐

