如何在从C ++运行批处理文件时隐藏命令提示符

时间:2013-11-20 15:04:53

标签: visual-c++ batch-file background batch-processing

    @echo off
    if [%1] == [] exit 
    adb kill-server
    tasklist /FI "IMAGENAME eq DuOS.exe" 2>NUL | find /I /N "DuOS.exe"
    if NOT "%ERRORLEVEL%"=="0" (start "" %4 timeout 25)
    (adb -e install %1)>%3
    (findstr /c:"Success" %3)>%2
    SET /p myvar=<%2
    echo myvar= %myvar%
    if "%myvar%"=="" set s=0
    if NOT "%myvar%"=="" set s=1
    echo %s%

我从C ++文件获取Arguments,而我的批处理文件是Executing它打开命令Prompt and Doing The Work,但我需要隐藏命令提示符,它应该不可见.......

2 个答案:

答案 0 :(得分:0)

您始终可以创建.vbs脚本来运行批处理文件。 vbs脚本只需要一行代码。打开文本编辑器并键入以下内容:

CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False

将其另存为invisible.vbs,然后使用以下命令行条目调用它:

wscript.exe "C:\Wherever\invisible.vbs" "C:\Some Other Place\MyBatchFile.bat"

(您将使用C ++的语法来运行该命令)

来源:https://superuser.com/questions/62525/run-a-completly-hidden-batch-file

修改 该链接还解释了如果需要传入参数

,如何执行此操作

答案 1 :(得分:0)

 BOOL result = CreateProcess(NULL,
                            cmd,
                            NULL,
                            NULL,
                            FALSE,
                            CREATE_NO_WINDOW,
                            NULL, 
                            NULL, 
                            &startupInfo,
                            &processInformation);

cmd是批处理文件的NAme,命令需要发送批处理文件, startupInfo使其为零 processInformation使其为零

  PROCESS_INFORMATION processInformation    = {0};
  STARTUPINFO startupInfo           = {0};