VBS(Visual Basic脚本)运行程序隐藏/不可见

时间:2014-03-27 20:28:05

标签: vbscript

我正在尝试从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脚本)运行程序不可见?

4 个答案:

答案 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客户端控制,则当用户关闭它时它将变为不可见(例如,单击“文件”菜单上的“退出”)。此行为允许控制器继续控制对象。只有当对象的最后一个外部引用消失时,控制器才应该关闭。