0
有什麼辦法來控制其他Windows應用程序使用c + +/qt?處理不同的應用程序使用C + +
我有:1000個特定圖像格式的文件和一個可以打開它們的應用程序。此應用程序可以使用「另存爲...」功能將這些文件逐個以「.JPEG」格式保存。我想自動執行此操作。
有沒有什麼技術可以做到這一點?先謝謝你!
有什麼辦法來控制其他Windows應用程序使用c + +/qt?處理不同的應用程序使用C + +
我有:1000個特定圖像格式的文件和一個可以打開它們的應用程序。此應用程序可以使用「另存爲...」功能將這些文件逐個以「.JPEG」格式保存。我想自動執行此操作。
有沒有什麼技術可以做到這一點?先謝謝你!
使用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() ;
當然,外部進程必須接受輸入參數,並通過它的標準輸出提供反饋,以解決您的問題
恕我直言,C++不是這份工作的正確工具。像AutoIt這樣的東西讓人想起這樣的事情。 – NathanOliver
除非該程序有明確的C++ API,否則使用C++聽起來不太合理。 – Fang
@NathanOliver會調查它,謝謝 –