『壹』 MFC 與DOs通信
mark
你這個需求很奇怪。
MFC本身察兆鍵可以執行幾乎一切dos命令,根本不需要在後台開一個DOS窗口然後隱藏。
不過我還真沒有用MFC調用過有返回和交互的腳本或程序。如果你是要實現這種返回和交互,還是試著解決一下「MFC調用其他命令並獲敗巧取輸出猜坦」這個問題吧。
『貳』 我想在MFC圖形啟動初始化的時候執行一條DOS命令,怎麼弄不可以彈出控制台窗口
CreateProcess() STARTUPINFO 參數中攜灶的 dwFlags 添加 STARTF_USESHOWWINDOW, wShowWindow 用 SW_HIDE;
或者滾猜:
ShellExecute() 中參數大隱型 nShowCmd 用 SW_HIDE
system() 或者
『叄』 利用MFC執行dos命令,system()函數的相關問題。
每個system會彈出一個窗口
如果想在同一窗口中執行多個命令,可採用下面方式:
system("命令1 && 命令2 && 命令3...");
如
system("d: && md abc && cd abc && md def");
相當於打開cmd後執行了如下的命令:
d:
md abc
cd abc
md def
我的回答有沒有幫到你?
『肆』 MFC中如何判斷ShellExecute函數執行dos命令是否成功
執行成功會返回應用程序句柄; 如果這個值 <= 32, 表示執行錯誤}
//返回值可能的錯誤有: = 0 {內存不足}
ERROR_FILE_NOT_FOUND = 2; {文件名錯誤}
ERROR_PATH_NOT_FOUND = 3; {路徑名錯誤}
ERROR_BAD_FORMAT = 11; {EXE 文件無效}
SE_ERR_SHARE = 26; {發生共享錯誤}
SE_ERR_ASSOCINCOMPLETE = 27; {文件名不完全或無效}
SE_ERR_DDETIMEOUT = 28; {超時}
SE_ERR_DDEFAIL = 29; {DDE 事務失敗}
SE_ERR_DDEBUSY = 30; {正在處理其他 DDE 事務而不能完成該 DDE 事務}
SE_ERR_NOASSOC = 31; {沒有相關聯的應用程序}
//ShowCmd 參數可選值:SW_HIDE = 0; {隱藏}
SW_SHOWNORMAL = 1; {用最近的大小和位置顯示, 激活}
SW_NORMAL = 1; {同 SW_SHOWNORMAL}
SW_SHOWMINIMIZED = 2; {最小化, 激活}
SW_SHOWMAXIMIZED = 3; {最大化, 激活}
SW_MAXIMIZE = 3; {同 SW_SHOWMAXIMIZED}
SW_SHOWNOACTIVATE = 4; {用最近的大小和位置顯示, 不激活}
SW_SHOW = 5; {同 SW_SHOWNORMAL}
SW_MINIMIZE = 6; {最小化, 不激活}
SW_SHOWMINNOACTIVE = 7; {同 SW_MINIMIZE}
SW_SHOWNA = 8; {同 SW_SHOWNOACTIVATE}
SW_RESTORE = 9; {同 SW_SHOWNORMAL}
SW_SHOWDEFAULT = 10; {同 SW_SHOWNORMAL}
SW_MAX = 10; {同 SW_SHOWNORMAL}
『伍』 MFC:怎麼在顯示窗口之前顯示一個類似DOS的命令窗口
使用ShellExecute()函數。如:
ShellExecute(NULL,NULL,
"C:\\WINDOWS\\system32\\cmd.exe"/*這個參數是執行的程序的路徑和名稱*/,NULL/*這里是命令行參數*/,
NULL,
SW_HIDE/*該參數確定顯不顯示DOS窗口*/
);
具體用法見msdn
『陸』 C++MFC窗體和Dos命令窗口中如何使用字元串
第一種方法,直接顯示
CString str="123";
SetDlgItemText(IDC_IDET1,str); //IDC_IDET1為編輯框ID
第二種方法,關聯變數
通過ClassWizard為編輯框關聯一個CString類型的變數,假設為m_Show
CString str="123";
m_Show=str;
UpdateData(FALSE);
『柒』 MFC程序 調用控制台輸出
直接新建控制台程序,哥們肯定會的吧,在對茄畝話框,單畝輪文檔之類的工程中,要調用這個函數
UINT WinExec(
LPCSTR lpCmdLine, // address of command line
UINT uCmdShow // window style for new application
);
//第一個參數是你要執行的DOS命令,第二個參數如果你顯示控制台窗口可以用SW_SHOW,如果值執行迅納信命令,不需要顯示控制台窗口就採用SW_HIDE
給你舉個例子
WinExec(「ipconfig」,SW_SHOW);
『捌』 MFC程序運行DOS命令如何影藏黑框
用ShellExecute(NULL,"open",cmdbuf,NULL,workpath,SW_HIDE);試試。
『玖』 MFC怎麼調用dos!!!
ShellExecute(NULL,"open","d://WINDOWS//system32//cmd.exe","/c md d://zzz","",SW_SHOW);
ShellExecute不僅可以運行EXE文件,也可以運行已經關聯的文件。
『拾』 MFC中怎麼調用dos,並隱藏dos窗口,還能把dos界面產生的信息顯示在MFC的窗口上急需各位
沒有簡單的實現辦法。
這里關鍵是看,你要用DOS做什麼事情。如果是執行系統命令,那麼通常都有對應的WINAPI函數,這個是可以沒有DOS窗口,而信息返回給程序的,實現你的想法沒問題。
如果是特定程序,那麼沒有很好的簡單實現辦法。如果是一個瞬間完成程序,則中的辦法就是在程序內執行命令行,並通過命令行將「屏顯」放到文本文件,MFC程序內打開這個文件即可。這樣會有黑屏閃現,但不顯示信息。例:
WinExec("dir *.* >d:\\1.txt");