如何用隐形窗口打开exe?

时间:2015-12-29 23:59:31

标签: batch-file vbscript properties

例如,我在VBS中使用此代码以“模式不可见”打开BAT(窗口是不可见的),但我想尝试使用exe(chrome.exe)并且它不起作用。它只适用于BAT。我不知道如何在VBS编程:/。这是代码:

set objshell = createobject("wscript.shell")
objshell.run "chrome.exe",vbhide

此外,我尝试使用此代码(我在Google中创建的代码):

set args = WScript.Arguments
num = args.Count

if num = 0 then
WScript.Echo "Usage: [CScript | WScript] invis.vbs aScript.bat <some script arguments>"
WScript.Quit 1
end if

sargs = ""
if num > 1 then
sargs = " "
for k = 1 to num - 1
    anArg = args.Item(k)
    sargs = sargs & anArg & " "
next
end if

Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run """" & WScript.Arguments(0) & """" & sargs, 0, False

但从技术上讲,它是一样的。我想打开像chrome.exe这样的exe的不可见窗口(例如),我不知道如何为exe执行此操作:/

您好。感谢那。我在IE中使用了这段代码并且可以工作:

Set IExp = CreateObject("InternetExplorer.Application")
Set WSHShell = WScript.CreateObject("WScript.Shell")
IExp.Visible = False
IExp.navigate "www.google.com.co"

但它不适用于Chrome,所以我将这个新代码用于Chrome浏览器默认代码:

Dim iURL 
Dim objShell

iURL = "www.google.com.co"

set objShell = CreateObject("WScript.Shell")
objShell.run(iURL),vbhide

但它不适用于Chrome:/。我在Google上看到,Chrome会创建不同的流程,例如浏览器的基础和每个标签。当Chrome启动时,它总是在任务管理器中有2或3个进程“chrome.exe”。那么如何打开Chrome的隐形窗口? :(

1 个答案:

答案 0 :(得分:1)

代码执行您希望它执行的操作。但是,如果您运行的可执行文件/脚本只是某个其他可执行文件/脚本的启动程序,则该语句将仅隐藏启动程序,而不是已启动的程序。据我所知,不可能影响来自VBScript的孙子进程的可见性。

演示:

如果从这样的VBScript启动记事本:

CreateObject("WScript.Shell").Run "notepad.exe", 0, False

您将获得一个隐藏的记事本实例(您可以在任务管理器的“进程”选项卡中查看该进程)。

现在创建一个这样的批处理脚本:

@echo off
start /wait notepad.exe

如果双击该批处理脚本,您将看到两个窗口:一个带有批处理脚本的CMD窗口和一个记事本窗口。

但是,如果您从VBScript运行批处理脚本,请执行以下操作:

CreateObject("WScript.Shell").Run "C:\path\to\your.cmd", 0, False

只有“记事本”窗口变为可见,因为批处理过程是隐藏的。