Python: 捕獲正在運行的CMD窗口內容

最近需要捕獲已經在運行的CMD窗口內容,並且需要根據指定輸出內容來判斷下一步的行動(輸入指定內容)。

嘗試了很多次後,想到一個思路:

通過inspect.exe來獲取CMD窗口Name信息
通過uiautomation捕獲到CMD窗口
通過輸入Ctrl+A後Ctril+C來複制整個CMD窗口內容
然後獲取到剪切板中複製的內容後進行判斷

基本代碼如下:

from uiautomation import DocumentControl
import clipboard

# 獲取CMD窗口
window = DocumentControl(searchDepth=3, Name='Text Area')
# 測試在CMD裏面刪除某個文件
window.SendKeys('del /p test.txt')
window.SendKeys('{Enter}')

# Ctrl A / C 全選複製
window.SendKeys('{Ctrl}A')
window.SendKeys('{Ctrl}C')
# 獲取剪切板裏面的複製內容
result = clipboard.paste()
print(result)
# 判斷複製內容是否是以特定內容結尾或者特定字符
if result.endswith('Delete (Y/N)?'):
    # 輸入內容
    window.SendKeys('n')
    window.SendKeys('{Enter}')
    window.Close()
#     執行完成
    print('finished')
else:
    print('No such value,not complete')

 

Tags: