【问题标题】:How to Hide a command prompt While running a Batch File From C++从 C++ 运行批处理文件时如何隐藏命令提示符
【发布时间】:2013-11-20 15:04:53
【问题描述】:
    @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++ 文件中获取参数,当我的批处理文件正在执行时,它正在打开命令提示符并执行工作,但我需要隐藏命令提示符,它不应该是可见的...... .

【问题讨论】:

  • 查看here 以获得类似的解决方案。

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


【解决方案1】:
 BOOL result = CreateProcess(NULL,
                            cmd,
                            NULL,
                            NULL,
                            FALSE,
                            CREATE_NO_WINDOW,
                            NULL, 
                            NULL, 
                            &startupInfo,
                            &processInformation);

cmd 是批处理文件的名称,需要为批处理文件发送命令, startupInfo 使其为零 流程信息化为零

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

【讨论】:

【解决方案2】:

您始终可以创建一个 .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

编辑 该链接还解释了如果您需要传入参数,该怎么做

【讨论】:

  • 今天我的工作很忙,明天我会检查它.. @destrom8 并感谢您的帮助,谢谢您Sooooooo Muchhhhhhhhhhhhh
  • 很高兴为您提供帮助!让我们知道它是否有效,也许发布编辑或选择它作为接受的解决方案(如果有效)。这将使未来的读者知道这是否解决了它。
  • 它工作正常,但我需要在 c++ 文件中等待,直到批处理文件完成执行,我们可以这样做@destrom8
  • 为了做到这一点,我认为您必须创建一个新进程来运行批处理文件,然后再返回代码。不幸的是,我没有在 C++ 中做到这一点,只有 Java,所以我不确定我是否会得到更多帮助。这将是一个不同线程的问题。
  • 是的,感谢您的帮助,我通过使用 CreateProcess() 调用完成了我的任务,谢谢@destrom8
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多