添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

运行命令时隐藏 cmd 窗口

当我们运行 .bat 文件,或者用其他软件调用 cmd /c ... 时,cmd 窗口会一闪而过(或者停留一阵,如果运行时间较长),有些时候非常碍眼。有很多方法可以隐藏这个 cmd 窗口,比如用各种语言调用 WScript.Shell 的 Run 函数,用 AHK 的 Run 函数,还有不少 SilentCMD hide-win32-console-window 之类的工具。但这些方法都比较慢,一般需要 30 毫秒以上。写不好的话,空格、引号、括号之类地方还会出问题。

其实用 C 语言实现这个功能很简单,耗时也在 10 毫秒之内。

wrun.c:

#include <windows.h>
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow) {
    STARTUPINFO si;
    PROCESS_INFORMATION pi;
    ZeroMemory(&si, sizeof(si));
    si.cb = sizeof(si);
    ZeroMemory(&pi, sizeof(pi));
    CreateProcessW(NULL, lpCmdLine, NULL, NULL, 0, CREATE_NO_WINDOW, NULL, NULL, &si, &pi);
    return 0;