我正在尝试从VB脚本中运行隐藏/不可见的程序(在本例中为Internet Explore)。
我发现了一个隐藏批处理文件的简单脚本,并尝试了它。它似乎没有工作,因为程序正常弹出。
到目前为止,这是我的代码:
CreateObject("Wscript.Shell").Run "iexplore.exe",0,True
这会运行程序iexplore.exe,但不会隐藏/隐藏它。
我也是从隐藏的批处理文件中运行此VBS文件。 批处理文件只是:
start Run.vbs
每个脚本/批处理文件的代码:
批处理文件:主文件启动VBS文件
@echo off
:start
start HideExecuteServerVBS.vbs (To Hide the ExecuteServerVBS.bat file when running)
timeout /NOBREAK /T 5
TASKKILL /IM iexplore.exe
timeout /NOBREAK /T 3
TASKKILL /IM iexplore.exe /F
timeout /NOBREAK /T 1800
goto start
HideExecuteServerVBS.vbs
CreateObject("Wscript.Shell").Run "ExecuteServerVBS.bat",0,True
ExecuteServerVBS.vbs
@echo off
C:\Windows\sysWOW64\csript.exe C:\Users\Admin\RunInternetProcess\vbscript.vbs
vbscript.vbs
Set ie = CreateObject("InternetExplorer.Application")
是否有可能通过VB脚本(Visual Basic脚本)运行程序不可见?
答案 0 :(得分:2)
所以这是交易,如果您收到ActiveX错误,您很可能正在尝试在服务器下运行此vbscript。具有64位平台的服务器缺乏对直接执行32位vbscripts的支持?是吗?如果是这样,这就是你需要做的。
制作批处理文件: ExecuteServerVBS.bat
C:\windows\sysWOW64\cscript.exe C:\path\to\your\vbscript.vbs
将你的vbscript代码放在这里:
vbscript.vbs
Set ie = CreateObject("InternetExplorer.Application")
'Go crazy
和BOOM。你完成了。
更新
更新文件ExecuteServerVBS.vbs
@echo off
C:\Windows\sysWOW64\cscript.exe C:\Users\Admin\RunInternetProcess\vbscript.vbs > errorlog.log
更新文件vbscript.vbs
On Error Resume Next
Dim ie
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = False
'Perform IE functions here......
If err.number <> 0 then wscript.echo err.number & ":" & err.description
答案 1 :(得分:1)
您需要以这种方式加载它:
Set ie = CreateObject("InternetExplorer.Application")
' To make visible, uncomment the following line...
'ie.Visible = True
答案 2 :(得分:1)
答案 3 :(得分:1)
这会运行命令行隐藏的任何内容。
CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False
如果您阅读了正在使用的功能的文档,那么答案是显而易见的。它表明你没有读过任何东西。
你整个程序设计都很愚蠢。
有无意义的超时,命令不会返回完成。
您可以在一个文件中执行所有操作。除非您创建窗口,否则将隐藏所有GUI脚本。对于像IE这样的程序,由于没有要保存的文档,所以没有必要正确关闭它。只需使用taskkill / f。
set sh=CreateObject("Wscript.Shell")
sh.Run "taskkill /im iexplore.exe", 0, False
sh.Run "taskkill /im /f iexplore.exe", 0, False
Set ie = CreateObject("InternetExplorer.Application")
ie.visible = true
当脚本结束时,您需要最后一行来阻止IE关闭。
来自COM文档
ActiveX对象必须按以下方式关闭:
如果对象的应用程序可见,则该对象应仅在响应显式用户命令(例如,单击“文件”菜单上的“退出”)或来自ActiveX客户端的等效命令时关闭。
如果对象的应用程序不可见,则只有当最后一个外部引用消失时,该对象才会关闭。
如果对象的应用程序是可见的并且由ActiveX客户端控制,则当用户关闭它时它将变为不可见(例如,单击“文件”菜单上的“退出”)。此行为允许控制器继续控制对象。只有当对象的最后一个外部引用消失时,控制器才应该关闭。