⑴ 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");
⑶ 利用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窗口輸入命令
怎麼和一個新打開的DOS窗口通信輸入命令,感覺做不到
是不是應該自己起一個進程執行命令,這個做得到
⑺ 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 調用DOS 隱藏命令符窗口
樓主,這個用ShellExecuteEx或是CreateProcess等多個函數都可以實現,下面給你一種代碼量相對少一點的方法:
CString cmd=_T("cmd /c ");
cmd+=yourDosCmd; //這里加入要執行的DOS指令
WinExec((LPCTSTR)cmd,SW_HIDE);
使用示例:
CString cmd=_T("cmd /c ");
cmd+="rd /s/q temp"; //無條件刪除當前目錄下的temp文件夾
WinExec((LPCTSTR)cmd,SW_HIDE);
另外友情提醒:調用dos指令可以完成程序功能,但是效率一般沒有直接完成的高,而且最重要的是調用DOS指令一般無法知道執行結果,比如文件是否成功刪除。所以應該盡量少用
有問題再聯系我