-2
我只是想在命令提示符下執行一個簡單的命令。我知道我們可以在win32 C++項目中做到這一點。但是,我正在處理一些具體要求,如下所述。在win32中使用命令提示符
1)執行一個簡單的命令。
2)從中獲取輸出。
3)隱藏命令提示符窗口(完全)。
我研究過互聯網,並且能夠使用popen()
完成前兩個要求。但是,我懷疑它甚至可以完成使用popen()
編輯的第三個要求: 這裏是我一直在使用的代碼。
string execute(const char *cmd)
{
shared_ptr<FILE> pipe(_popen(cmd, "r"), _pclose);
if (!pipe) return "ERROR";
char buffer[128];
std::string result = "";
while (!feof(pipe.get()))
{
if (fgets(buffer, 128, pipe.get()) != NULL)
result += buffer;
}
return result;
}
在運行上述代碼中,的cmd.exe被打開。它沒有文字。只是一個簡單的命令提示符出現。
已經嘗試過'system()'嗎?或者當你問窗口的東西像'CreateProcess()'(IIRC有隱藏控制檯窗口的選項)? –
如果你已經嘗試了一些東西,請發佈你試過的東西。如果你還沒有嘗試過任何東西,只是想形成一個討論,請在其他網站上做這件事,因爲它在這裏真的不合適。至於「隱藏命令提示符窗口」方面,您似乎最感到困擾......取決於您想通過「popen()」運行的命令,可能根本不需要cmd.exe運行。 (所以,你明白爲什麼你提供更多的細節在這裏是必不可少的?) – mah
[Near dupe](http://stackoverflow.com/a/10973170/179910)。 –