0

MYOB (AccountRight Plus) からのすべてのレポートのエクスポートを自動化できるツールはありますか? AutoIt と Sikuli を試しましたが、マウス クリック (およびキーボードの送信/入力コマンド) が何らかの形で無視されるようです。出来ますか?以下は、私が使用している AutoIt スクリプトです。

    #include <ImageSearch.au3>
    #include <WinAPI.au3>
    #include <Constants.au3>
    $x1=0
    $y1=0
    WinActivate("AccountRight Plus")
    Sleep(200)
    $result = _ImageSearch("Accounts.bmp",1,$x1,$y1,0)
    if $result=1 Then
        MouseMove($x1,$y1,3)
        MouseClick("left")
        Sleep(1000)
        MouseClick("left")
        $aMouse = MouseGetPos() ; Remembers current mouse position
        ConsoleWrite("Mouse Clicked at " & $aMouse[0] & "," & $aMouse[1] & @LF)
        Sleep(500)
        ;Try with Handle
        Local $handle = WinGetHandle("AccountRight Plus")
        If @error Then
            MsgBox(4096, "Error", "Could not find the correct window")
        Else
            ConsoleWrite("$handle = " & $handle & @LF)
            ControlSend($handle, "", "", "^i")
        EndIf
        Sleep(1000)
        ;try winAPI
        ;MsgBox(0, "Info", "Moving mouse")
        _WinAPI_Mouse_Event($MOUSEEVENTF_MOVE, 653, 454)
        _WinAPI_Mouse_Event($MOUSEEVENTF_LEFTDOWN)
        Sleep(500)
        _WinAPI_Mouse_Event($MOUSEEVENTF_LEFTUP)
        ; try Control Click
        $controResult=ControlClick("ABC - Command Centre",20806,"left",2,62,106)
        ConsoleWrite("controlResult = " & $controResult & @LF)
        Sleep(1000)
        ; try ControSend to inner frame
        $controResult=ControlSend("AccountRight Plus","ABC- Command Centre",20806,"{TAB}")
        ConsoleWrite("controlResult = " & $controResult & @LF)
        Sleep(1000)
        ; try ControSend to outer frame
        $controResult=ControlSend("AccountRight Plus","","","{ALT}")
        ConsoleWrite("controlResult = " & $controResult & @LF)
        Sleep(1000)
        ; try with CLASS
        $controResult=ControlSend("AccountRight Plus","","[CLASS:MDIClient; INSTANCE:1]","{TAB}")
        ConsoleWrite("controlResult = " & $controResult & @LF)
        Sleep(1000)
        ; try send
        Send("{TAB}")
        Sleep(1000)
        Send("{TAB}")
        Sleep(1000)
        ;try MenuSelect
        WinMenuSelectItem("AccountRight Plus", "", "&File")
        Sleep(1000)
        MsgBox(0,"Found","picture found.")
            EndIf
4

1 に答える 1

0

ぬし、、

アプリケーションでスキャンコードを直接使用しようとしましたか?

ここに例があります。現在の位置でマウスをクリックし、{Tab} を送信します。必要に応じてこれを変更する必要があります。最初に「MouseMove,150,250」でマウスを正しい位置に移動できます。これらは X、Y の位置です。

F8:: ; Press F8 to start macro
Send, {vk01} ; Click left mouse button
;Send, {scYYY} ; 
Send, {vk09sc00F} ; Send the Vk and SC codes for the {Tab} key.
Return

これがうまくいくかどうか教えてください

于 2013-01-25T10:01:00.503 に答える