導航:首頁 > 程序命令 > 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執行命令相關的資料

熱點內容
韓順平php視頻筆記 瀏覽:636
阿里雲ecs伺服器如何設置自動重啟 瀏覽:596
三星電視怎麼卸掉app 瀏覽:317
如何將pdf轉換成docx文件 瀏覽:32
dos命令批量改名 瀏覽:376
centosphp環境包 瀏覽:601
mfipdf 瀏覽:534
電腦解壓後電腦藍屏 瀏覽:295
外網訪問內網伺服器如何在路由器設置 瀏覽:856
2014統計年鑒pdf 瀏覽:434
linuxoracle用戶密碼 瀏覽:757
股票交易pdf 瀏覽:898
p2papp源碼 瀏覽:308
記錄睡眠軟體app哪個好用 瀏覽:140
液壓助力車壓縮比 瀏覽:217
文件伺服器上如何查看 瀏覽:975
雪花繪制源碼 瀏覽:662
app主頁演示圖怎麼做 瀏覽:542
幼兒園設計pdf 瀏覽:645
干接點輸入單片機 瀏覽:541