autoit與股票交易自動化
A. autoit用的什麼語言
類BASIC 腳本語言,其實就是自己定義的語言,比較簡單。
下面是介紹:
AutoIt v3 版本, 這是一個使用類似 BASIC 腳本語言的免費軟體, 它設計用於 Windows GUI(圖形用戶界面)中進行自動化操作. 利用模擬鍵盤按鍵, 滑鼠移動和窗口/控制項的組合來實現自動化任務. 而這是其它語言不可能做到或無可靠方法實現的(比如VBScript和SendKeys). AutoIt 非常小巧, 完全運行在所有windows操作系統上.(thesnow注:現在已經不再支持win 9x,微軟連XP都能放棄, 何況一個win 9x支持), 並且不需要任何運行庫.
AutoIt 最初是為PC(個人電腦)的"批量處理"而設計, 用於對數千台PC進行(同樣的)配置. 現在, autoit 是一個支持復雜表達式, 自定義函數, 循環等的強大腳本軟體.
B. Autoit如何調用91OCR
網路上有很多基於OCR識別技術的工具、引擎以及一些web服務,它們對於識別一些簡單的驗證碼是有一定的效果的,但是對於比較復雜的驗證碼(比如增加了一些模糊功能或者多種語言文字組合)識別效果並不太理想。此處將使用一款開源的OCR引擎(Tesseract)來解決AutoIT自動化測試中驗證碼識別的問題。
Tesseract原本由惠普開發,在一段時間內因為一些原因沒有更新,Google於2006年重啟了這個項目,目前已經發布到了3.01版本。
首先下載Tesseract並進行安裝。安裝完成之後,做一個小的實驗。將一張驗證碼圖片放置到「C:」。運行CMD,輸入命令:
「tesseract.exe c:1.jpg c:1 -1」
查看「C:」下是否生成了一個名為「1.txt」的文本,並查看文本中的識別結果。
由此,可以看出圖片中的驗證碼已經被Tesseract識別出來。
使用Tesseract可以從圖片中識別出驗證碼來,那麼自動化測試中處理驗證碼的第一步就是從應用中把驗證碼圖片摳出來。下面的這段代碼即實現了這樣的處理。
WhileNotCheckLinkExistByText($OIE,"退出>>")
;MsgBox(1,"num","第"&$i&"次")
Local$Inputcheck=_IEGetObjByName($OIE,"txtValidateCode")
Local$oImg=_IEGetObjById($oIE,"vcodeimg")
$oPic=$oIE.Document.body.createControlRange()
$oPic.Add($oImg)
$oPic.execCommand("Copy")
$bmp=ClipGet()
FileCopy($bmp,"c:1.jpg",1)
$cmd="tesseract.exec:1.jpgc:1-1"
Run(@ComSpec&"/k"&$cmd,"",@SW_HIDE)
Sleep(2000)
$file=FileOpen("c:1.txt",0)
$checkCode=FileRead($file,4)
;MsgBox(1,"識別為",$checkCode)
FileClose($file)
$Inputcheck.value=$checkCode
Local$Inputname=_IEGetObjByName($OIE,"txtUserName")
Local$InputPWD=_IEGetObjByName($OIE,"txtPassword")
Local$LoginBtn=_IEGetObjByName($OIE,"btnLogin")
$Inputname.value=$Tester
$InputPWD.value=$TesterPWD
$LoginBtn.click
_IELoadWait($OIE)
ProcessClose("cmd.exe")
$i=$i+1
Wend
這段代碼的思想就是,當識別出來的驗證碼輸入後登錄不成功,就重新獲取驗證碼圖片再識別再次嘗試,直到識別出正確的驗證碼。
注意到這段代碼:
$cmd="tesseract.exec:1.jpgc:1-1"
Run(@ComSpec&"/k"&$cmd,"",@SW_HIDE)
即使用CMD命令來執行Tesseract的識別。
Tesseract還具有很強大的訓練功能,可以利用訓練功能增強Tesseract的識別能力。
C. 求一個自動化腳本(autoit或VB)一鍵運行VirtualBox主程序,並點擊啟動按鈕進入系統,謝謝
autoit 用到run() sleep() mouseclick()
比如(具體內容根據自已電腦情況更改)
Run ( "???VirtualBox.exe","c:\program????????????" )
Sleep ( 60000)
MouseClick ( "left" ,?,?,1, 0)
你可能需要的內容:
Run ( "執行文件名" , "執行文件路徑") 比如run("notepad.exe","c:\windows")
Sleep ( 4321) 程序等4321毫秒後進行下一步動作
MouseClick ( "left" , 100,200, 1, 0 ) 左鍵在距屏幕左上角水平100像素垂直200像素的地方點3下。滑鼠移動0耗時
具體定義
Run ( "program" [, "workingdir" [, show_flag [, opt_flag]]] )
Sleep ( delay )
MouseClick ( "button" [, x, y [, clicks [, speed]]]
)
D. java自動化用autoit怎麼寫
隨著Web應用業務系統的普及和深化,業務系統的種類逐漸增多。操作流程也更加繁雜,日常操作任務顯著增加,繁雜的操作流程也非常容易出現紕漏。 那有沒有辦法改善這種狀況呢?回答是肯定的。藉助Web應用的自動化測試工具,我們可以完成自動操作任務,把那些程序化的操作交給計算機去完成。 在各種自動化測試工具中,Autoit3的學習成本是最低的,很適合沒有計算機專業知識的人使用,它可以完成各種軟體的自動化操作任務,在本系列經驗中我們只討論它的Web應用操作模塊。 工具/原料 Autoit3 AutoIt文檔 方法/步驟 下載Autoit3安裝包及文檔。 Autoit3的安裝包只包含一個標准可執行文件(autoit-v3-setup.exe)。 下載地址: 運行autoit-v3-setup.exe,單擊Next。 單擊IAgree。 單擊Next。 單擊Next。 選擇安裝路徑,單擊Install。 單擊Finish,完成安裝。 Autoit3的安裝過程非常簡單,至此就已經成功安裝完成了。 步驟閱讀
E. autoit怎麼做自動化
ControlCommand ( 窗口標題, 窗口文本, 控制項ID, 命令 [, 選項] )
只能用於操作ToolbarWindow32類型的工具欄控制項,經過封裝的控制項是不行的。
控制項ID - 建議使用類別名,即(類名+Instance),如 ToolbarWindow321
命令 - 固定為SendCommandID
這里的選項就是要發送的CommandID - 可通過AutoIt窗口信息工具來識別,在「工具欄」標簽頁下可以查看命令ID。
一個示例如下:
ControlCommand($hWin, , ToolbarWindow321, SendCommandID, 28721)
其實,不一定用ControlCommand,UDF也可以的啊:
include lt;GuiToolbar.au3;
_GUICtrlToolbar_ClickButton()
_GUICtrlToolbar_ClickIndex()
_GUICtrlToolbar_CommandToIndex()
F. 下面的程序利用AutoIt做自動化測試為什麼總會出現錯誤,希望哪位大俠給知道知道看有沒有什麼語法錯誤:
試修改如下:
$file = FileOpen("result.txt", 2) ;==> 這一句前面要加個變數
If $file = -1 Then
MsgBox(4096, "錯誤", "不能打開文件.")
Exit
EndIf
Dim $username[5] = ["111a2fe", "sw136", "a23eeeeeeeeee", "a233", "a134rt"]
Dim $password[5] = ["123567", "333aaae", "aaaaaaa", "dkdkdkdk", "dddddddd"]
Run("register.exe")
WinWaitActive("用戶注冊")
For $i = 0 To 4
$a = 0 ;==> 這句可以不要
ControlSend("用戶注冊", "", 5, $username[$i]) ;==> 注意控制項ID是否正確
;GUICtrlSetData(5,$username[$i])
ControlSend("用戶注冊", "", 7, $password[$i]) ;==> 注意控制項ID
;GUICtrlSetData(7,$password[$i])
ControlClick("用戶注冊", "", 8)
$a = WinGetState("錯誤信息")
ControlClick("錯誤信息", "", 2) ;==> 這一句貌似不應該寫在這,據猜測,可能是注冊失敗才有這個窗口出現
;MsgBox(0,"aa",$a)
If $a <> 0 Then
WinWaitActive("錯誤信息")
ControlClick("錯誤信息", "", 2)
FileWrite($file, "用戶名: " & $username[$i] & @CRLF & "密碼:" & $password[$i] & @CRLF & "right" & @CRLF) ;==> 修改
;MsgBox(0,"bb",$a)
Else
WinWaitActive("注冊成功")
ControlClick("注冊成功", "", 2)
;MsgBox(0,"cc",$a)
EndIf
Next
G. Autoit 定位到SysTreeView32控制項內容
問題解決了嗎?我就是用autoit做的程序,自動盯盤,自動網格買賣。還是不錯的
H. AutoIt 與 AutoHotkey 有何異同是選擇前者還是後者
我是先接觸AutoIt的,但時間還不算久。我看了一些介紹, AutoHotkey 是從AutoIt分支出來的,部分開發人員是原來AutoIt的開發人員,這兩者有許多方面非常相似,我也看了兩者的幫助,確實如此,目前我認為比較不一樣的就是AutoIt所用的語言類VB,而AutoHotkey 所用的語言類C++或JAVA。 實際上我比較熟悉的是C++和JAVA類語言,看上去簡潔容易理解,而且本人接觸C++語言有很長的時間,所以比如FLASH所用的AS語言,其它J腳本類的也很容易閱讀。而對於類VB的我看上去不是不能理解,而是比較吃力,所以我在先接觸AutoIt時感覺這語言比較雜亂,特別是endif這些比較羅嗦的語法比較討厭。既然是我比較不喜歡VB類,那為什麼我選擇了AutoIt呢?原因很簡單,本來只是想找一種編程工具寫個工具,但又不想用比較復雜的VC++編寫,因為使用VC++與MFC寫圖形界面我反而沒什麼接觸,所以想找一比較快速的腳本語言寫個圖形界面程序,結果找到的是AutoIt而不是AutoHotkey,所以就先用了幾天時間。因為AutoIt與AutoHotkey有根源,所以通過一些介紹關注了下AutoHotkey,知道非常相似。其實以前就有下載過這樣的編程工具,但看名字,可能只是針對寫游戲鍵盤滑鼠自動化用的吧!但現在看來,似乎不是那麼回事,原來看介紹還可以實現類似於AutoIt中我需要的功能,比如文件目錄操作,GUI等。 目前對閱讀VB類已經不成問題,已經能實現一些功能,現在開始做我的工具。但我的仍然不改我的印象,視覺上,代碼還是太亂了。 如果是這樣,不知道有沒有必要轉向類C++的AutoHotkey?畢竟我與某些評論的觀點一致,AutoIt比較失敗的就是使用了類VB的語言。
I. 如何單擊使用的autoit或windows ui自動化的應用程序按鈕
使用python藉助pyautoit模塊,可以實現windows的自動化
腳本如下:
autoit.control_click('Demo', '登錄')
具體就要看你的程序是什麼情況了