win32程式執行控制台命令並重定向輸出到檔案

2021-06-18 03:27:04 字數 634 閱讀 8823

shellexecute系列函式,可以執行控制台命令,但是無法實現輸出重定向。

system函式,可以執行命令,並實現輸出重定向,但是無法隱藏控制台視窗。

createprocess函式,則既可以執行命令,又可以實現輸出重定向,同時不顯示控制台視窗。

但是,createprocess函式的使用顯得有些複雜。

我們可以將他包裝一下,讓他變得和shellexecute或system一樣好用。

下面的函式my_exec就實現了這種包裝。

通過my_exec執行命令,並實現輸出重定向非常方便。

例如,執行ping命令,將結果輸出到c:\haha.txt中。則按如下方式呼叫即可。

my_exec(text("ping www.csdn.net"), text("c:\\haha.txt"), -1);

再如,執行dos命令dir,並將結果輸出到c:\fff.txt中。則按如下方式呼叫即可。

my_exec(text("cmd.exe  /c  dir d:") , text("c:\\fff.txt"), -1);

好了,函式my_exec的**實現如下。

int my_exec(tchar *cmd, tchar *output_file, int wait_time_sec)

win32視窗程式轉為控制台

windows支援兩種型別的程式,gui graphical user inte ce 和cui console user inte ce 他們是通過乙個叫載入器的東西進行載入,vs中只要修改聯結器 系統 子系統中的值,如果是gui則是 subsystem windows 如果是cui則是 subs...

Win32視窗程式使用控制台

win32視窗程式使用控制台對應的函式是allocconsole和freeconsole。向控制台輸出 allocconsole handle hd getstdhandle std output handle writeconsole hd hello console n sizeof hello...

win32控制台 win32工程 MFC工程的區別

空專案 控制台 問2個問題即可。1.控制台 vs win32 mfc?嗯,有不有臉?有臉,選win32或mfc。沒有臉,選控制台。臉就是視窗,就是window.s 這個有臉 這個沒臉 控制台與win32 mfc 互動方式的不同,前者是cml 命令模式 後者是gui 使用者介面 2.mfc vs wi...