using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using AutoItX3Lib; namespace gx { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnOpen_Click(object sender, EventArgs e) { AutoItX3Class v3 = new AutoItX3Class(); v3.Run(@"M:\1.exe", @"M:\\", 1); v3.Sleep(500); v3.MouseClick("left", 661, 449, 1, 0); v3.Sleep(500); v3.MouseClick("left", 603,393, 1, 0); v3.Send("989898", 0); v3.MouseClick("left", 605, 416, 1,0); v3.Send("9sd#irtf", 1); v3.MouseClick("left", 612, 449, 1, 0); } } } 原来也有在C#下做过,感觉不好。 http://www.wealth-lab.cn/download.php?file=6f912b51846a410b847fd96509b0f1a5 http://www.wealth-lab.cn/download.php?file=05dc56c995c85a0808642c5e4aa0c345 http://www.wealth-lab.cn/download.php?file=3b6082f5d386590648c056c85a49dcb8
这个方法有缺点 呵呵,看了上面的链接,里面的代码本人曾在海洋论坛里面首先发表的。 当时想用让飞狐有自动下单的功能,不过我早就放弃了。因为我发现wealthLab更好! wealthlab+autoitX+WealthLab+核心下单程序,用VB.net做成下单接口,也实现了自动下单的功能。 不过稳定性不理想,而且autoitx插件放在接口程序中,有些autoitx函数工作起来不如在autoit脚本工作可靠。
去tnnd啦....内存跟踪到了...数据包所占内存是从堆里面分配出来的,地址是动态的....难不成让我改exe程序里面的代码...太暴力了点............. 从内存里面的数据来看,猜想是TStringGird类型,不过是经过包装了。TStringGird对Windows的GETITEMTEXT之类的消息没反应,只能Hook了。网上倒是有些相关的资料。http://cache.baidu.com/c?m=9d78d513...9c7&p=8b2a9545c89f0add1ebd9b7c4657&user=baidu
OCR? 就是从屏幕抓结果? 通用的OCR不知好不好搞。而我的另外的方法就是直接抓图片,把“0”到“9”,还有其他会出现的文字的图片分别抓下来。然后在屏幕上抓结果的时候和这些小图片逐一比对,符合了就把这图片对应的字符串拼起来,最后可以得到一个集合的结果字符串。 比较笨拙的方法,后来忙了其他也没做这个了。laot兄可以参考一下。