2013-03-17 41 views
2

我試圖編寫一個C程序來控制Windows cmd提示符。例如,打開cmd提示符,轉到特定目錄(例如:C:/ Program Files/...),然後在該文件夾中運行一個exe文件。使用C控制cmd提示使用C

這可以用C編程來完成嗎?如果是這樣,怎麼樣?到目前爲止,我只知道系統(「cmd.exe」)打開cmd提示符。我將如何進一步與cmd提示進行交互?

謝謝。

+0

您知道,您並不需要使用命令提示符作爲代理來執行這些操作...... Windows具有API來執行此操作,請查看它。 – StoryTeller 2013-03-17 18:30:37

回答

1

這不會很便攜。調用通常是不被接受的,但僅僅爲了回答你的問題,system函數確實可以與你打算使用的命令一起工作。

例如:

system("notepad.exe my_file.txt"); 
system("del my_file.txt"); 
system("pause"); 

這將打開一個名爲my_file.txt在記事本文件,將其刪除,暫停程序。

再次,這是不可移植的。它特定於Windows操作系統。實際上,我甚至不認爲它可以在所有版本的Windows上工作。 (請不要在此引用我的意見。)

0

關於主題:您可以通過「CreateProcess」啓動cmd並通過窗口消息(「SendMessage」)發送鍵輸入。

我認爲你應該重新思考你想要做什麼。命令提示符不是一種在Windows上執行操作的API基礎。這是一種工具,可以在不編寫自己的程序的情況下完成任務並獲取信息。如果你想要一個自己的程序,你應該直接使用WinAPI。

要開始你可以谷歌「winapi [任何你想要做的]」。在你的例子「winapi啓動可執行文件」,你會發現像「CreateProcess」和「ShellExecute」功能。

1

也許這裏有一個誤解(如果是這樣,我很抱歉),但「進一步與cmd提示交互」的標準方式是通過命令行命令,以及「編寫程序來控制窗口的標準方式cmd提示符「是通過批處理文件。例如,下面的批處理文件打開cmd提示符(通過在資源管理器中雙擊執行時),轉到特定目錄(C:/ Program Files /)並在該文件夾中運行一個exe文件:

@echo off 
cd "C:/Program Files/" 
nameOfTheProgram.exe