[問題] 打開*.exe後如何自動化輸入

看板Windows作者 (CCT)時間11月前 (2023/05/18 23:40), 11月前編輯推噓3(3010)
留言13則, 7人參與, 11月前最新討論串1/1
不知道這問題是否適合在這邊發問?? 因為開發需要,從合作方那邊拿到了一個.exe 這個執行檔打開後會呈現像cmd的介面, 而我需要依照需求去輸入參數 或是等待回應 例如: step1 輸入1 step2 等到回應stringA後再輸入2 這樣子一直持續下去的交互輸入與等待 如果今天要使用的參數不多,自動化與否沒什麼問題 而今天問題在於一堆參數要下,我自己也覺得不自動化去跑會遇到很多操作上的問題與不方便 目前我試過一些方法,結果沒有太好, 所以想要請問一下有沒有辦法能夠克服呢? 直接用bat: 但是似乎exe打開後就無法吃到bat裡頭的指令 寫一個python tool,模擬鍵盤輸入: 這個方法可以動,但是我依舊無法得到字串的回應 同時我得保證這個執行檔的視窗是正在使用的那個 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.171.16.136 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Windows/M.1684424419.A.EE6.html ※ 編輯: CCT63 (1.171.16.136 臺灣), 05/18/2023 23:42:02

05/18 23:42, 11月前 , 1F
你的bat每個指令有換行嗎
05/18 23:42, 1F

05/18 23:46, 11月前 , 2F
有呦
05/18 23:46, 2F
我有嘗試過先start *.exe後去echo,結果無效 後來改用call也是無效 不知道有沒有建議或幫忙指錯下呢? 謝謝 ※ 編輯: CCT63 (1.171.16.136 臺灣), 05/18/2023 23:48:15

05/19 02:10, 11月前 , 3F
autohotkey?
05/19 02:10, 3F

05/19 04:19, 11月前 , 4F
python pexpect
05/19 04:19, 4F
如果使用pexpect,是不是也需要把我說的那個視窗放在最上層? ※ 編輯: CCT63 (49.216.163.212 臺灣), 05/19/2023 09:40:46

05/19 12:02, 11月前 , 5F
tintin
05/19 12:02, 5F

05/19 14:05, 11月前 , 6F
假如你下一指令是依據前一個回應內容而定,那就別想了
05/19 14:05, 6F

05/19 14:06, 11月前 , 7F
因為response 是 push show到你程式的 windows 裡面
05/19 14:06, 7F

05/19 14:06, 11月前 , 8F
若要用類似鍵盤精靈之類的,你也大概得排好組合指令時間
05/19 14:06, 8F

05/19 14:07, 11月前 , 9F
抓回應大概會幾秒出來,大概幾秒後輸入下一個指令這樣
05/19 14:07, 9F

05/19 22:32, 11月前 , 10F
pexpect 呼叫 expect() 就會等到目標程式輸出給定字串
05/19 22:32, 10F

05/19 22:32, 11月前 , 11F
也就是它是會把目標程式的輸出接下來, 你再指定條件
05/19 22:32, 11F

05/19 22:33, 11月前 , 12F
因此就不是另開一個視窗開目標程式, 而是交給 pexpect 開
05/19 22:33, 12F

05/19 22:33, 11月前 , 13F
自然沒有「要不要放在最上層」的問題
05/19 22:33, 13F
文章代碼(AID): #1aPaRZxc (Windows)