導航:首頁 > 程序命令 > mfc執行命令

mfc執行命令

發布時間:2022-05-09 14:39:30

㈠ mfc程序怎麼接受命令行參數

三種方法:

假設我們啟動程序的時候執行的是以下命令:

D:mfcapp.exe -l -f ./1.txt

方法1,調用全局函數

::GetCommandLine();

將獲取到全部參數信息:D:mfcapp.exe -l -f ./1.txt

方法2,使用宏__argc和__argv,使用方法和命令行main(int argc,char *argv[])一樣,示例代碼:

for(inti=0;i<__argc;i++)
{
__argv[i];//依次遍歷可以得到D:mfcapp.exe-l-f./1.txt
}

方法3:使用CWinApp類的成員變數m_lpCmdLine,它裡麵包含除了第一個參數的所有信息,比如:

AfxGetApp()->m_lpCmdLine;//結果為-l -f ./1.txt

㈡ 怎麼使用mfc的cdatabase類直接執行sql命令

環境:WindowsXP ; VC++6.0 + sp5 1。通過odbc直接執行SQL語句CDatabase mydb;
CRecordset myRecord;
CString strSQL;
CDBVariant cv;try{if ( !mydb.IsOpen() )
mydb.OpenEx("資料庫連接字元串",CDatabase::noOdbcDialog); myRecord.m_pDatabase = &mydb;
//直接執行SQL語句,
//注意,SQL語句字元串一定不能以空格開始
strSQL = "SELECT 欄位或計算列 FROM 表 WHERE 條件";
//strSQL = " SELECT 欄位或計算列 FROM 表 WHERE 條件 "; //這樣不行,會報錯,查詢語句中沒有欄位
myRecord.Open(CRecordset::snapshot,"需要執行的SQL語句"); int i = 0;
while ( !myRecord.IsEOF() ){myRecord.MoveFirst();
myRecord.GetFieldValue(i,cv); //獲得第(i+1)列的數據,數據保存在CDBVariant變數中,不可以直接使用數字0
myRecord.MoveNext();}
myRecord.Close();
mydb.Close();
}上文中的 myRecord.GetFieldValue(i,cv); 語句也可以使用下面的方式實現。

㈢ 利用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程序中怎麼打開CMD命令窗口,運行一些代碼

很多人問,但無正確答案。CSDN也有人問,但CSDN的帖子過期就不能回復,所以別人有答案了也干著急。CSDN領導人腦袋長了腫瘤吧?
答案如下:
using namespace std;
STARTUPINFO si;
memset(&si, 0, sizeof(STARTUPINFO));//初始化si在內存塊中的值(詳見memset函數)
si.cb = sizeof(STARTUPINFO);
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_SHOW;
PROCESS_INFORMATION pi;//必備參數設置結束
if (!CreateProcessW(TEXT("C:\\WINDOWS\\system32\\cmd.exe"),
TEXT("/k tclsh "),
NULL,
NULL,
FALSE,
0,
NULL,
NULL,
&si,
&pi
)){
cout << "CreateFail!" << endl;
exit(1);
}
else{
cout << "Success!" << endl;
}
//不使用的句柄最好關掉
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
重點是CreateProcessW函數的第二個參數要帶上/k參數!!!!!!!!!!!!

㈤ MFC中調用控制台程序如何進行自動輸入並執行

以ping命令為例。
CStringA str = "ping sohu.com";
str += " -t";
system(str);

以上是vs2008環境。在vc6下如果CStringA不能通過編譯請使用CString代替。

你把ping sohu.com改成你的長文件路徑就可以了啊。
CStringA str = "c:\\mypass\\MypassCCCCC.exe";
// str += " -t";
system(str);
另外,要確認你的控制台程序中有接收參數的功能。如果沒有,光靠簡單的調用api函數是達不到你要求的,即使用其他函數也一樣。這樣的話,你可以考慮編寫一個.bat批處理文件。
system( "X:\\xxxx\\xx.bat");
這下應該夠明白了吧

㈥ MFC 主對話框收到消息,就重新執行命令,而不是等到執行完第一次再執行第二次

這個必須基於線程。
窗口消息機制,是一個消息隊列,消息是順序執行的,雖然有「插隊」和「清除」機制,但比較簡單粗暴。
你需要將按鈕內的任務做成一個工作者線程,每次按鈕消息是啟動這個線程,這樣按鈕消息就可以快速返回了,但任務依然在繼續。這樣再次點擊按鈕的時候,如果存在線程,則結束線程,啟動新的線程。
這個邏輯應該是你需要的(記得前面看到你提問過),不過線程的相關知識,對初學者可能有些復雜,你需要了解創建線程、信號燈機制,線程非同步管理等相關知識,這個不是幾句話說得清的,在VC相關書籍中,是幾個大章節的內容。
線程的用法和相關知識太多,建議你使用AfxBeginThread,並著重研究WaitForSingleObject和CEvent用法,網路這兩個關鍵詞有各種講解。

㈦ 菜鳥請教,MFC如何執行帶參數的EXE

1、外部運行:cmd中 a.exe -param1 -param2
2、IDE中:屬性-調試-命令參數中添加

㈧ MFC按鈕調用一程序,如何執行程序命令行參數呢

標准c庫函數不知道行不行,如果在win32環境下,調用win32 API絕對是可以的,用shellexecute函數啟動程序,命令行參數在程序名稱後按空格隔開,在調用程序main函數中使用string strLine=::AfxGetApp()->m_lpCmdLine;就可以獲取命令行參數了,在開發多進程項目的時候用的比較多,常用於進程間啟動參數傳遞。

㈨ MFC中定時器運行時能執行其他命令嗎

僅供參考:
可以。
在定時器啟動的時候,定時器函數中的代碼定時執行。
在啟動定時器之後的代碼也會依次執行。

㈩ MFC中怎麼調用cmd並執行命令

ShellExecute(NULL, "open", "ping", "127.0.0.1", NULL, SW_SHOW);

閱讀全文

與mfc執行命令相關的資料

熱點內容
泵與壓縮機答案姬忠禮 瀏覽:676
什麼手機app可以看歐美動漫 瀏覽:532
海外伺服器ip是什麼 瀏覽:90
如何壓縮手機的相冊的照片 瀏覽:749
超級省電模式可以加密嗎 瀏覽:134
我的世界怎麼進入伺服器基岩版 瀏覽:580
windows命令進程監控 瀏覽:863
單片機並行介面及外部中斷實驗 瀏覽:990
應用隱私加密微信 瀏覽:212
漏洞掃描命令 瀏覽:103
pdf列印成彩色 瀏覽:758
linuxandroid區別嗎 瀏覽:64
ccs生成的編譯文件在哪 瀏覽:468
什麼軟體可以搜索安卓 瀏覽:514
ad19原理圖常見編譯錯誤 瀏覽:54
烽火交換機查看埠光衰命令 瀏覽:580
程序員那麼可愛陸漓被搭訕 瀏覽:146
黨課app叫什麼 瀏覽:996
單片機輸出模擬量 瀏覽:145
蘋果平板里app怎麼移除 瀏覽:793