goldsuper7 发表于 2014-11-25 09:49:03

正航ERP外掛問題

focus 正航的視窗 用autoit 滑鼠左鍵右鍵或移動滑鼠 模擬鍵盤的按鍵都無作用 但其他視窗用win api語法都正常 但是透過按鍵精靈可以點擊滑鼠或移動滑鼠 請問怎讓我滑鼠點擊左鍵或模擬送出鍵盤按鍵

kk_lee69 发表于 2014-11-25 11:55:14

回复 1# goldsuper7

應該是不會吧 我操作過 POST 資料 自動轉入....

你是要控制哪個視窗??

xz00311 发表于 2014-11-25 14:54:22

抓图出来看看你要实现那些

goldsuper7 发表于 2014-11-25 14:57:48

T357的正航
正航ERP/生產管理/廠內作業/廠內製令的單據 判斷 判斷完工 未結案 用程式點選 用AUTOIT滑鼠左鍵跟移動滑鼠只有在正航都無法操作

kk_lee69 发表于 2014-11-25 15:02:07

回复 4# goldsuper7

1.方法一 使用 滑鼠模擬操作
2.方法二動資料庫

滑鼠模擬 會 比較不穩定   晚點我回家有空測試看看 寫個 測試的給你試看看

kk_lee69 发表于 2014-11-25 15:10:14

回复 4# goldsuper7

最好上一下你的程式碼會清楚問題在哪

goldsuper7 发表于 2014-11-25 15:42:53

MouseMove(210,60)
MouseClick("left")
滑鼠都無反應 使用WIN API也是一樣 只要正航視窗不是在最上層就正常

kk_lee69 发表于 2014-11-25 16:36:57

回复 7# goldsuper7

你的意思是 最上層 就不正常?? 反而在下層 是正常的嗎

kk_lee69 发表于 2014-11-25 16:44:05

本帖最后由 kk_lee69 于 2014-11-25 16:45 编辑

回复 7# goldsuper7

你的意思是 最上層 就不正常?? 反而在下層 是正常的嗎

    給你幾個方向

盡量讓畫面簡單
先測試用鍵盤操作使用送鍵盤指令直接呼叫出你要的畫面

我寫的 部分代碼
run("C:\T357\T357.exe")
Opt("WinTitleMatchMode", 4)
Opt("SendKeyDelay", 500)
WinWait("正航系列","註冊")
ControlSetText("正航系列","註冊","TcxCustomCHIInnerTextEdit2",$User)
ControlSetText("正航系列","註冊","TcxCHITextEdit1",$Password)
ControlSetText("正航系列","註冊","TcxCustomCHIComboBoxInnerEdit2",$Company)
ControlClick("正航系列","註冊","TCPlasticButton3")
sleep(1000)
WinWait("正航系列","主菜單")
ControlClick("正航系列","主菜單","TdxBarControl1")
sleep(1000)
Opt("SendKeyDelay",1000)
Send("!D{RIGHT}{DOWN}{DOWN}{ENTER}")
Opt("SendKeyDelay",500)
WinWait("正航系列","POS資料轉入")
sleep(1000)
ControlClick("正航系列","POS資料轉入","TfrmPosConnect1")
sleep(1000)
ControlClick("正航系列","繁體","TCGroupButton1")
sleep(1000)
ControlClick("正航系列","重寫資料","TCCheckBox4")
sleep(1000)

;$posA = ControlGetPos("正航系列","POS資料轉入","TCEdit1")
;MouseClick("left",$posA+30,$posA+35, 2)

goldsuper7 发表于 2014-11-26 13:15:50

您的版本正航是多少
目前使用6.5.2.1625 sp104 之前的CODE就無法使用

kk_lee69 发表于 2014-11-26 13:19:10

回复 10# goldsuper7

我是之前的版本 6.0.1.39

6.5 的 肯定不一樣連小版本 改了 程式碼 可能都需要改寫

老實說真的不建議使用鍵盤模擬操作....

所以 後來我都不使用鍵盤滑鼠模擬操作....

能告訴我你想要做甚麼外掛嗎???

正航外掛我寫過不少後來都是直接動資料庫處理

goldsuper7 发表于 2014-11-26 13:37:28

鍵盤模擬 確實不是好方法
但是動到資料庫又有保固的問題
外掛目前只是把製令單 判斷完工但已結案或未結案可以自動切換
好讓人員能把廠內入庫單完工的事後補工時資料

只是變換版本後 自寫的程式無法使用模擬鍵盤跟滑鼠 只能靠按鍵精靈輔助
明明AUTOIT就 有模擬鍵盤跟滑鼠語法 作用正航無法動作Orz
ControlClick ControlSend 都無法使用 但是ControlGetText可以

kk_lee69 发表于 2014-11-26 16:47:01

回复 12# goldsuper7

說到這邊 晚上我測試一下好了晚點跟你說我測得的結果

deaph 发表于 2014-11-26 17:01:54

学习了,感谢分享!

kk_lee69 发表于 2014-11-28 21:57:16

回复 12# goldsuper7

我實際測試 6.5.2.1625SP93 版本

沒有你說的問題

以下的範例為自動登入
然後 使用鍵盤 ALT+S 加 方向控制到 開啟 廠內置造命令
然用 用滑鼠 移到狀態 的位置
點擊 切換到狀態功能

run("C:\T357\T357.exe")
Opt("WinTitleMatchMode", 4)
Opt("SendKeyDelay", 500)
WinWait("正航系列","註冊")
ControlSetText("正航系列","註冊","TcxCustomCHIInnerTextEdit2","administrator")
ControlSetText("正航系列","註冊","TcxCHITextEdit1","chi")
ControlSetText("正航系列","註冊","TcxCustomCHIComboBoxInnerEdit2","09")
ControlClick("正航系列","註冊","TCPlasticButton3")
sleep(1000)
WinWait("正航系列","主菜單")
ControlClick("正航系列","主菜單","TdxBarControl1")
;=============教育板用=========
Opt("SendKeyDelay",1000)
Send("{ENTER}")
;=========================
sleep(1000)

Opt("SendKeyDelay",1000)
Send("!S{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{RIGHT}{DOWN}{DOWN}{RIGHT}{ENTER}")
Opt("SendKeyDelay",500)
WinWait("正航系列","廠內製造命令單")
sleep(1000)
MouseMove(189,447)
MouseClick("left")
页: [1] 2
查看完整版本: 正航ERP外掛問題