安信安睿终端V7.11自动下载日线与1分钟5分钟K线脚本

下载安装autoit脚本中替换通达信路径 ,运行命  "C:\Program Files (x86)\AutoIt3\autoit3.exe" /ErrorStdOut "D:\run_tdx.au3" ,可以用schedule程序自动调用。淘宝上通达信脚本居然卖近300块,真无耻,这绝本不难写,不过我这两三天都一点时间抽出时间调试,今晚终于成功。家中电脑win10上成功,办公室win7弹出窗口后还需随便点一下才行。

;#RequireAdmin,这会导致阻塞模式没了

; 在云服务器上运行时,远程桌面关闭会导致autoit3的鼠标和键盘操作失效,请改用RealVNC
#Include <GuiTab.au3>
#include <GuiButton.au3>


Func RunMain()
   ; 请配置通达信软件的主程序
   Local $iPID = Run("D:\axzq_v6\TdxW.exe", "")
   ; 请配置通达信软件的标题
   Local $title = "[TITLE:安信安睿终端V7.11; CLASS:#32770]"
   WinActivate($title)
   Local $hLoginWnd = WinWaitActive($title)


   ; 开始下载数据
   Sleep(500)
   ControlClick($hLoginWnd, "", "[CLASS:AfxWnd42; INSTANCE:12]")
EndFunc


Func PopDownloadDlg()
   ; 找到主窗口,并弹出下载对话框
   Local $title = "[CLASS:TdxW_MainFrame_Class]"
   WinActivate($title)
   Local $hMainWnd = WinWaitActive($title)
   SendKeepActive($hMainWnd)
   WinMove($hMainWnd, "", 0, 0, 300, 600)


   ;在本地居然不能用,不然会出错
   ;Sleep(2000)
   ;WinClose("[TITLE:即时播报; CLASS:#32770]")


   ; 点击到盘后数据下载
   ; 如果使用Mouse without Borders这个软件进行多台电脑会出错
   ControlClick($hMainWnd, "", 3000)
   ControlClick($hMainWnd, "", "[CLASS:AfxWnd42; INSTANCE:7]")
   Send('{DOWN 11}{ENTER}')
EndFunc


Func SetCheckDownloadDlg()
   ; 点击进行下载
   Local $title = "[TITLE:盘后数据下载; CLASS:#32770]"
   WinActivate($title)
   Local $hDlgWnd = WinWaitActive($title)




   ; 将第一页的日线数据选上
   Sleep(500)
   Local $idRdo1 = ControlGetHandle($hDlgWnd,"","[TEXT:日线和实时行情数据]")
   Local $idRdo2 = ControlGetHandle($hDlgWnd,"","[TEXT:5分钟线数据]")
   Local $idRdo3 = ControlGetHandle($hDlgWnd,"","[TEXT:1分钟线数据]")
   _GUICtrlButton_SetCheck($idRdo1)
   ; 将第二页的5分钟数据选上

   _GUICtrlButton_SetCheck($idRdo2)

   ; 将第二页的1分钟数据选上

   _GUICtrlButton_SetCheck($idRdo3)

   ; 激活各页,需要设置的时间进行切换
   Local $idTab = ControlGetHandle($hDlgWnd,"","[CLASS:SysTabControl32; INSTANCE:1]")
   _GUICtrlTab_SetCurFocus($idTab, 1)
   _GUICtrlTab_SetCurFocus($idTab, 0)
   _GUICtrlTab_SetCurFocus($idTab, 1)
EndFunc


Func ClickDownloadDlg()
   Local $title = "[TITLE:盘后数据下载; CLASS:#32770]"
   WinActivate($title)
   Local $hDlgWnd = WinWaitActive($title)


   ; 开始下载数据
   Sleep(500)
   ControlClick($hDlgWnd, "", "[TEXT:开始下载]")
EndFunc




Func WaitDownloadDlg()
   ; 开始下载数据
   Sleep(500)
   Local $title = "[TITLE:盘后数据下载; CLASS:#32770]"
   WinActivate($title)
   Local $hDlgWnd = WinWaitActive($title)


   Local $idtext = ''
   Do
  Sleep(2000)
  $idtext = ControlGetText($hDlgWnd,"","[CLASS:Static; INSTANCE:2]")
   Until '下载完毕.' = $idtext
   ;Until '下载被取消.' = $idtext
   ; 找到下载完毕.
  
EndFunc


Func ExitMain()
   ; 需要退出下载对话框,否则程序没有完全退出
   Local $title = "[TITLE:盘后数据下载; CLASS:#32770]"
   WinActivate($title)
   Local $hDlgWnd = WinWaitActive($title)

   WinClose($hDlgWnd)

  ControlClick($hDlgWnd, "", "[TEXT:关闭]")

   Sleep(500)


   ; 关闭主窗口
   Local $title = "[CLASS:TdxW_MainFrame_Class]"
   WinActivate($title)
   Local $hMainWnd = WinWaitActive($title)
   WinClose($hMainWnd)


   ; 确认退出
   Local $hMainWnd = WinWaitActive("[TITLE:退出确认; CLASS:#32770]")
   ControlClick($hMainWnd, "", "[TEXT:退出]")
EndFunc




RunMain()
PopDownloadDlg()
SetCheckDownloadDlg()
ClickDownloadDlg()
WaitDownloadDlg()
ExitMain()


Exit(1)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值