控制台應用程式的定向輸出

2021-09-30 08:46:41 字數 2190 閱讀 3992

_spawnlp( _p_wait,"netstat","-e","-s","-n","r","a","-p","ip",null);

::shellexecute(null,null,"ping.exe","168.192.0.1 >1.txt",null,sw_shownormal);

system("format a:/q >null");

_execlp("expand.exe","source.cab","-f:m*.dll",c:/winnt/sytem32",null );

能夠成功實現控制台應用程式輸出定向的方法是呼叫createprocess函式。通過這個函式我們可以實現建立乙個程序,能夠隱藏控制台視窗,並把控制台視窗的輸出結果定向輸出到乙個文字檔案。

在windows 2000環境下,createprocess函式提供了乙個名叫create_no_window的標誌,這個標誌能夠成功阻止控制台視窗出現,然而在 windows 98環境下,這個標誌不被支援。為了實現兩種環境下隱藏控制台視窗,我們可以通過設定startinfo結構成員並把它傳遞給createprocess 函式來達到這個目的。

下面是程式實現部分的介面和部分**:

void cdocmddlg::onbnclickedbutton1()  

char cmdline[max_path];  

wsprintf ( cmdline,"ping.exe %d.%d.%d.%d",b1,b2,b3,b4 );  

security_attributes sa=;  

security_attributes *psa=null;  

dword dwsharemode=file_share_read|file_share_write;  

osversioninfo osversion=;  

osversion.dwosversioninfosize =sizeof ( osversion );  

if ( getversionex ( &osversion ) )  

}  //根據版本設定共享模式和安全屬性

handle hconsoleredirect=createfile (  

"c:",  

generic_write,  

dwsharemode,  

psa,  

open_always,  

file_attribute_normal,  

null );  

assert ( hconsoleredirect!=invalid_handle_value );  

startupinfo s=;  

s.dwflags =startf_useshowwindow|startf_usestdhandles;  

//使用標準柄和顯示視窗

s.hstdoutput =hconsoleredirect;//將檔案作為標準輸出控制代碼

s.wshowwindow =sw_hide;//隱藏控制台視窗

process_information pi=;  

if ( createprocess ( null,cmdline,null,null,true,null,null,null,&s,π ) )  

closehandle ( hconsoleredirect );  

//關閉控制台定向輸出檔案控制代碼

cfile myfile ( "c:",cfile::moderead );  

assert ( myfile.m_hfile!=null );  

char * psznetstatus=new

char[myfile.getlength () +1];  

zeromemory ( psznetstatus,myfile.getlength () +1 );  

myfile.read ( psznetstatus,myfile.getlength () );  

myfile.close ();  

//開啟檔案,把它讀到乙個字元緩衝區

deletefile ( "c:" );  

//刪除臨時檔案

m_editnetstatus.setwindowtext ( psznetstatus );  

//把控制台程式輸出資訊寫到編輯框中

delete psznetstatus;  

}  

ArcEngine控制台應用程式

wbaolong原文 arcengine控制台應用程式 控制台應用程式相比其他應用程式,更加簡單,簡化了許多冗餘,可以讓我們更加關注於本質的東西。現在讓我們看一看arcgis engine的控制台應用程式吧!一 首先是許可繫結 1 執行時環境的繫結 esri.arcgis.runtimemanage...

ArcEngine控制台應用程式

wbaolong原文 arcengine控制台應用程式 控制台應用程式相比其他應用程式,更加簡單,簡化了許多冗餘,可以讓我們更加關注於本質的東西。現在讓我們看一看arcgis engine的控制台應用程式吧!一 首先是許可繫結 1 執行時環境的繫結 esri.arcgis.runtimemanage...

ArcEngine控制台應用程式

wbaolong原文 arcengine控制台應用程式 控制台應用程式相比其他應用程式,更加簡單,簡化了許多冗餘,可以讓我們更加關注於本質的東西。現在讓我們看一看arcgis engine的控制台應用程式吧!一 首先是許可繫結 1 執行時環境的繫結 esri.arcgis.runtimemanage...