2016-07-22 32 views
0

有什麼辦法來控制其他Windows應用程序使用c + +/qt?處理不同的應用程序使用C + +

我有:1000個特定圖像格式的文件和一個可以打開它們的應用程序。此應用程序可以使用「另存爲...」功能將這些文件逐個以「.JPEG」格式保存。我想自動執行此操作。

有沒有什麼技術可以做到這一點?先謝謝你!

+9

恕我直言,C++不是這份工作的正確工具。像AutoIt這樣的東西讓人想起這樣的事情。 – NathanOliver

+2

除非該程序有明確的C++ API,否則使用C++聽起來不太合理。 – Fang

+0

@NathanOliver會調查它,謝謝 –

回答

0

使用QT,您可以使用QProcess實例運行單獨的進程。

具體假設你的外部應用程序接受的輸入參數(例如,用於加載的文件路徑和文件路徑在哪裏存儲的結果。

QProcess shell; 

QStringList argv; 
//[setup argument-list] 

shell.setProcessChannelMode(QProcess::MergedChannels); 
shell.start(commandPath, argv); 
shell.waitForFinished(); 

注意QProcess中可以使用作爲IO流,這是有用的與過程交互(例如檢索進度信息):

shell.start(commandPath, argv); 
shell.waitForReadyRead(); 

while(shell.state() == QProcess::Running || !shell.atEnd()){ 
    auto s = shell.readLine() 

    //[do something with the current line of the process output] 
} 

QProcess::ExitStatus es = shell.exitStatus() ; 

當然,外部進程必須接受輸入參數,並通過它的標準輸出提供反饋,以解決您的問題

相關問題