sc900227 发表于 2014-4-23 12:01:43

基于.net平台 实现WG的开发 感兴趣的小伙伴赶紧尝试吧




以大漠插件为例, 若有更好的dll可尝试更换,但本人觉得大漠插件提供的方法已足够。

开发工具:Visual Studio2012

测试环境:Window 8专业版

首先需要注册大漠插件,由于本人在Window 8上测试,所以注册相对麻烦

其他系统可直接调用此方法:
AutoRegCom("regsvr32 -s D:\\dm\\dm.dll");

static string AutoRegCom(string strCmd)
         {
          string rInfo;
                try
                {
                Process myProcess = new Process();
                ProcessStartInfo myProcessStartInfo = new ProcessStartInfo("cmd.exe");
                myProcessStartInfo.UseShellExecute = false;
                myProcessStartInfo.CreateNoWindow = true;
                myProcessStartInfo.RedirectStandardOutput = true;
                myProcess.StartInfo = myProcessStartInfo;
                myProcessStartInfo.Arguments = "/c " + strCmd;
                myProcess.Start();
                StreamReader myStreamReader = myProcess.StandardOutput;
                rInfo = myStreamReader.ReadToEnd();
                myProcess.Close();
                rInfo = strCmd + "\r\n" + rInfo;
                return rInfo;
                }
            catch (Exception ex)
            {
            return ex.Message;
            }
      }

注册:
打开控制面板>>管理工具, 然后进入组件服务,左侧依次定位到 "组件服务">>"计算机">>"我的电脑">>"COM+应用程序",然后右击,新建应用程序,一直下一步,这个应用程序的名字随便,然后建好后,点开这个应用程序,右击组件,新建就可以这册这个dll文件了,建好后,注意在角色中添加上everyone和administrator这两个角色,这样方便访问。


注册成功,接着我们来到VS2012测试下
新建winform,添加引用:


OK 开始编写代码,别忘了using mydm;
private void btnMove_Click(object sender, EventArgs e)
{
       mydm.dmsoft dm = new dmsoft();   //实例化dm
       dm.MoveTo(30, 30);
       object intX = 0;
       object intY = 0;

       int dm_ret = dm.FindMultiColor(0, 0, 1366, 768, "B5D8E0",   "-1|12|5BA6B9,4|12|77B5C5,11|12|6EB7C7,15|8|7EBFCD,20|8|94C4CE,20|14|DDE8EB,20|19|CADBE0,22|21|CBD9DD,28|21|624514,28|16|4F3205,29|16|7F622A,29|10|4D2A00,29|6|5B3B0A,23|6|DEEBEE,22|2|70B2C1", 1, 0, out intX, out intY);

       int x = int.Parse(intX.ToString());
       int y = int.Parse(intY.ToString());
       if (x> 0 && y> 0)
         {
               MessageBox.Show(x.ToString());
               MessageBox.Show(y.ToString());
         }
}
测试多点找色没问题。当然你也可以根据大漠提供的众多方法实现更复杂的功能,包括内存掉call等等。

调CALL:




nsonline 发表于 2014-4-23 12:47:50

再深入一下汇编我也要弄点wg玩玩了~~:lol:

devilzhang1 发表于 2014-4-28 11:50:39

感谢lz分享

sc900227 发表于 2014-5-7 10:33:07

devilzhang1 发表于 2014-4-28 11:50 static/image/common/back.gif
感谢lz分享

sadadadadad

Stduy_Student 发表于 2014-5-8 20:37:05

再深入一下汇编
页: [1]
查看完整版本: 基于.net平台 实现WG的开发 感兴趣的小伙伴赶紧尝试吧