运行命令时隐藏 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;