[問題] 請問c語言如何在程式中執行exe檔?

看板C_and_CPP (C/C++)作者 (皮卡丘)時間15年前 (2010/12/06 19:02), 編輯推噓3(3025)
留言28則, 5人參與, 最新討論串1/1
想請問一下, 我有一個已經編譯好的exe檔, 例如test.exe 直接執行時,我要在dos視窗輸入 C:\> test.exe input output.txt 然後此exe檔會在收到input之後,把結果放進 output.txt裡, 請問有沒有辦法在程式中,直接執行這個exe檔, 並且傳入我要給此exe檔的參數(input及output)。 然後因為我有介面,希望執行的時候,默默的處理就好... 不要跳出dos視窗.....@@ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.127.182.2 ※ 編輯: jjllor88 來自: 140.127.182.2 (12/06 19:15)

12/06 19:18, , 1F
是可以,但我覺得你用 DLL 就好了。
12/06 19:18, 1F

12/06 19:18, , 2F
寫成bat檔,開頭加上@echo off
12/06 19:18, 2F

12/06 19:21, , 3F
12/06 19:21, 3F

12/06 19:24, , 4F
我對DLL的了解是,可以用他裡面的函數...
12/06 19:24, 4F

12/06 19:25, , 5F
但我要的是讓這個exe檔跑完...然後拿他的結果...
12/06 19:25, 5F

12/06 19:27, , 6F
請問WinExec 的方式,怎麼給input @@? 我只看到能給路徑
12/06 19:27, 6F

12/06 19:34, , 7F
不能用system()?
12/06 19:34, 7F

12/06 19:45, , 8F
loveflames:原po文中註明,他另一個程式是用GUI,所以不
12/06 19:45, 8F

12/06 19:45, , 9F
希望跳出 console 介面出來
12/06 19:45, 9F

12/06 19:47, , 10F
原po: WinExec("test.exe input output.txt", SW_HIDE)
12/06 19:47, 10F

12/06 19:47, , 11F
我的程式是寫在MFC的Dlg視窗之下,而要用的exe檔不是
12/06 19:47, 11F

12/06 19:47, , 12F
不過用WinExec是呼叫之後就繼續執行,和你要的有點距離.
12/06 19:47, 12F

12/06 19:47, , 13F
linux 下有背景執行的指令, windows 下應該也有才對
12/06 19:47, 13F

12/06 19:48, , 14F
原來如此,我以為WinExec第一個參數是只給路徑~@@
12/06 19:48, 14F

12/06 19:48, , 15F
我還蠻期待有人可以跟我說怎麼直接下cmd去隱藏的.
12/06 19:48, 15F

12/06 19:49, , 16F
所以,原PO,WinExec是你要的嗎?
12/06 19:49, 16F

12/06 19:51, , 17F
測試過WinExec可以用,感謝t大^^
12/06 19:51, 17F

12/06 19:58, , 18F
他呼叫完就繼續執行,問題應該不大,delay一下就好~@@
12/06 19:58, 18F

12/06 19:58, , 19F
以前我都是用system(),然後用ShowWindow隱藏起來
12/06 19:58, 19F

12/06 19:59, , 20F
只要能跑完,讓我讀到output.txt的內容就可以了
12/06 19:59, 20F

12/06 20:00, , 21F
system()這個..我只會用pause~@@ 很新的新手~Orz
12/06 20:00, 21F

12/06 20:02, , 22F
loveflames的方式有空實做看看,感謝很簡單
12/06 20:02, 22F

12/06 20:02, , 23F
以前我是在被呼叫的exe裡面加上 #pragma comment(
12/06 20:02, 23F

12/06 20:03, , 24F
linker, "/subsystem:\"windows\"
12/06 20:03, 24F

12/06 20:03, , 25F
/entry:\"mainCRTStartup\"" )
12/06 20:03, 25F

12/06 20:03, , 26F
不過那隻程式不是我寫的話就沒辦法這樣做了
12/06 20:03, 26F

12/06 20:04, , 27F
原po:windows底上呼叫system("...")就是你在命令提示
12/06 20:04, 27F

12/06 20:05, , 28F
字元底下打的指令,有興趣的話去玩玩命令提示字元就好.
12/06 20:05, 28F
文章代碼(AID): #1C_CBTPS (C_and_CPP)
文章代碼(AID): #1C_CBTPS (C_and_CPP)