作者CCT63 (CCT)
看板Windows
標題[問題] 打開*.exe後如何自動化輸入
時間Thu May 18 23:40:17 2023
不知道這問題是否適合在這邊發問??
因為開發需要,從合作方那邊拿到了一個.exe
這個執行檔打開後會呈現像cmd的介面,
而我需要依照需求去輸入參數 或是等待回應
例如:
step1 輸入1
step2 等到回應stringA後再輸入2
這樣子一直持續下去的交互輸入與等待
如果今天要使用的參數不多,自動化與否沒什麼問題
而今天問題在於一堆參數要下,我自己也覺得不自動化去跑會遇到很多操作上的問題與不方便
目前我試過一些方法,結果沒有太好,
所以想要請問一下有沒有辦法能夠克服呢?
直接用bat:
但是似乎exe打開後就無法吃到bat裡頭的指令
寫一個python tool,模擬鍵盤輸入:
這個方法可以動,但是我依舊無法得到字串的回應
同時我得保證這個執行檔的視窗是正在使用的那個
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.171.16.136 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Windows/M.1684424419.A.EE6.html
※ 編輯: CCT63 (1.171.16.136 臺灣), 05/18/2023 23:42:02
1F:推 Ahhhhaaaa: 你的bat每個指令有換行嗎05/18 23:42
2F:→ CCT63: 有呦05/18 23:46
我有嘗試過先start *.exe後去echo,結果無效
後來改用call也是無效
不知道有沒有建議或幫忙指錯下呢?
謝謝
※ 編輯: CCT63 (1.171.16.136 臺灣), 05/18/2023 23:48:15
3F:→ smallreader: autohotkey?05/19 02:10
4F:→ tomsawyer: python pexpect05/19 04:19
如果使用pexpect,是不是也需要把我說的那個視窗放在最上層?
※ 編輯: CCT63 (49.216.163.212 臺灣), 05/19/2023 09:40:46
5F:推 streit: tintin 05/19 12:02
6F:→ maniaque: 假如你下一指令是依據前一個回應內容而定,那就別想了 05/19 14:05
7F:→ maniaque: 因為response 是 push show到你程式的 windows 裡面 05/19 14:06
8F:→ maniaque: 若要用類似鍵盤精靈之類的,你也大概得排好組合指令時間 05/19 14:06
9F:→ maniaque: 抓回應大概會幾秒出來,大概幾秒後輸入下一個指令這樣 05/19 14:07
10F:推 LPH66: pexpect 呼叫 expect() 就會等到目標程式輸出給定字串 05/19 22:32
11F:→ LPH66: 也就是它是會把目標程式的輸出接下來, 你再指定條件 05/19 22:32
12F:→ LPH66: 因此就不是另開一個視窗開目標程式, 而是交給 pexpect 開 05/19 22:33
13F:→ LPH66: 自然沒有「要不要放在最上層」的問題 05/19 22:33
14F:→ CCT63: 剛剛在自己電腦模擬,用wexpect 好像能解決我的問題了,我 05/21 22:49
15F:→ CCT63: 再實驗看看 感謝各位高手 05/21 22:49