2016-01-05 112 views
-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被打開。它沒有文字。只是一個簡單的命令提示符出現。

+2

已經嘗試過'system()'嗎?或者當你問窗口的東西像'CreateProcess()'(IIRC有隱藏控制檯窗口的選項)? –

+1

如果你已經嘗試了一些東西,請發佈你試過的東西。如果你還沒有嘗試過任何東西,只是想形成一個討論,請在其他網站上做這件事,因爲它在這裏真的不合適。至於「隱藏命令提示符窗口」方面,您似乎最感到困擾......取決於您想通過「popen()」運行的命令,可能根本不需要cmd.exe運行。 (所以,你明白爲什麼你提供更多的細節在這裏是必不可少的?) – mah

+0

[Near dupe](http://stackoverflow.com/a/10973170/179910)。 –

回答

0

自己找到解決方案!畢竟,它並不像我想的那麼艱難。

這是link,它幫助我完美地解決了我的問題。該鏈接中的線程回覆正是我所需要的。