是否有可能嵌入您的應用程序窗口內系統的命令行吧?在窗口內嵌入命令行?
我希望能夠有命令行承擔我的C++應用程序,和我的應用程序採取上述空間的底部一定的空間。理想情況下,它應該可以在Mac,Linux和Windows上運行,但對於初學者來說,Windows是我開發它的主要目標。
是否有可能嵌入您的應用程序窗口內系統的命令行吧?在窗口內嵌入命令行?
我希望能夠有命令行承擔我的C++應用程序,和我的應用程序採取上述空間的底部一定的空間。理想情況下,它應該可以在Mac,Linux和Windows上運行,但對於初學者來說,Windows是我開發它的主要目標。
在Windows中,您可以使用一些WinAPI函數(如ShellExecute
和CreateProcess
(還有其他一些我不記得的東西))來實現。您從GUI獲取命令字符串,將它傳遞給這些WinAPI函數之一,然後將輸出發送回您的GUI。
你想在多個平臺上做到這一點,所以我建議製作一個通用模塊(函數的類或名稱空間,無論你最適合),允許使用操作系統終端不知道實際的下層操作系統。然後。當你想將應用程序移植到另一個操作系統時,只需更改此模塊的實現。
注:(?有)升壓正在開發一個庫,由運行shell命令更容易,Boost.Process。但目前它的版本爲0.4,並且自2010年10月4日以來尚未更新(即使其狀態仍「持續」)。
這個工作是否可以讓交互式命令行工作?例如,考慮Linux less或者Git的log命令,它們有交互作用。 – Tower
談到針對Windows,Windows控制檯窗口是「特殊」,因爲它得到特殊待遇,比系統上的任何其他窗口不同。您不會成功操縱它以供您自己使用。舉一個很好的例子,嘗試在控制檯窗口上使用Spy ++。
注意與AllocConsole
創建的窗口不是一個命令行解釋器,它只是一個控制檯窗口。
你應該實現自己的控制檯窗口,並儘可能解釋命令我能想到的幾個選項取決於你所期望的,探索的行爲,明智和複雜明智:
你說的「需要一些空間」是什麼意思?你想在你的窗口上顯示命令行嗎?或者你想嵌入可執行文件嗎?如果你想將它嵌入到可執行文件中,它應該是哪個命令行?最後一次調用? – RedX
我想在窗口內顯示命令行,並在用戶移動窗口時在窗口內移動。我希望它能正常工作,所以它只是嵌入在那裏。嵌入可執行文件,或者以某種方式渲染/放入系統cmd。 – Tower
看到tenfours的答案,它是一個GUI應用程序或控制檯應用程序? – RedX