前一篇文章講過如何隱藏控制台視窗,並把結果返回。但是控制台有個輸出重定向輸出到檔案功能,這個在createprocess中是不支援的。因此那個函式改進如下
tchar strlog[1024]=;
cstring strcmp =_t("test.exe abc>abc.h");
runcmd(strlog,strcmp.getbuffer(),true);//這個是用法
bool runcmd(tchar *plog,tchar *pcmd,bool breconstruct)//最後這個引數說明是否重定向到檔案
}else
startupinfo si;
process_information pi;
zeromemory( &si,sizeof(si));
si.cb = sizeof(si);
si.dwflags=startf_useshowwindow|startf_usestdhandles;
si.wshowwindow=sw_hide;
si.hstdinput=hreadpipe2;
if(breconstruct)
else
zeromemory( &pi,sizeof(pi));
unsigned long lbytesread;
char buff[1024]=;
cstring strlog;
createprocess(null,pcmd,null,null,true,0,null,null,&si,&pi);
while(1&&!breconstruct)
else
break;
}if(breconstruct)
closehandle( pi.hprocess );
closehandle( pi.hthread );
return true;
控制台輸出重定向到Memo
函式runcmd void fastcall tform1 runcmd ansistring cmdline,tstrings result else createpipe hreadpipe,hwritepipe,null,1024 screen cursor crhourglass try d...
控制台輸入輸出重定向
一般來講gui程式不能使用stdin和stdout,但是有時有些特殊需要,希望gui程式也有控制台,如 乙個程式,既可以以gui方式執行,又可以如果使用者在控制台裡打程式名的話,就以控制台程式的方式執行。通過allocconsole 和 attachconsole 這兩個win api就能實現上面的...
控制台輸出重定向到MFC的view物件裡
一 閒扯 今天領導心血來潮說伺服器的執行介面是乙個黑乎乎的控制台,太低端了,看我們能不能把它圖形化,至少做成乙個視窗有按鈕點啟動 停止。好吧,領導拍腦袋就叫人幹活的事不少,也沒有產品規劃,也就是讓他看的舒服,只能去做了。其中有乙個關鍵性問題,就是原先是往控制台輸出的資訊,使用mfc圖形化之後該往哪輸...