大漠插件就不过多介绍了,不知道的请查下百度。主要是讲解C#怎么调用大漠插件。

大漠插件提供了COM版本,C#直接点击引用,添加即可。然后注册下大漠插件到系统文件夹,注册代码如下:

      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;
}
}

调用方法:

             //注册大漠
var regResult = AutoRegCom("regsvr32 -s dm.dll");

实例化大漠模块:

private static dmsoft _dmsoft = new dmsoft();

查找微信和QQ的聊天窗口,根据窗口类名来进行模糊查找,然后得到窗口句柄,根据窗口句柄得到窗口的标题、类名信息(QQ聊天窗口的类名是:TXGuiFoundation,微信的聊天窗口类名是:ChatWnd):

       var list = new List<int>();
list.AddRange(_dmsoft.EnumWindow(, "", "TXGuiFoundation", ).Split(',').Where(x => !string.IsNullOrWhiteSpace(x)).Select(x => Convert.ToInt32(x)));
list.AddRange(_dmsoft.EnumWindow(, "", "ChatWnd", ).Split(',').Where(x => !string.IsNullOrWhiteSpace(x)).Select(x => Convert.ToInt32(x)));
windInfoBindingSource.DataSource = list.Select(x => new WindInfo()
{
Handle = x,
ClassName = _dmsoft.GetWindowClass(x),
Title = _dmsoft.GetWindowTitle(x),
}).ToList();

拿到窗口句柄剩下的事情就好办了。往窗口里面投递文本消息->模拟鼠标按键Enter发送消息。

          foreach (var windInfo in w.Where(x => x.Enable))
{
_dmsoft.BindWindowEx(windInfo.Handle, "gdi", "windows", "windows", "", );
Thread.Sleep();
_dmsoft.SetWindowState(windInfo.Handle, );
_dmsoft.SetWindowState(windInfo.Handle, );
Thread.Sleep();
_dmsoft.SendString2(windInfo.Handle, content);
Thread.Sleep();
_dmsoft.KeyDown();
_dmsoft.KeyUp();
_dmsoft.SetWindowState(windInfo.Handle, );
_dmsoft.SetWindowState(windInfo.Handle, );
_dmsoft.UnBindWindow();
}

1、通过 BindWindowEx 方法绑定窗口

2、通过 SetWindowState 设置窗口为正常模拟并且设置窗口为激活状态(为了获取到输入焦点)

3、SendString发送文本到窗口,因为目前窗口已经获取到输入焦点,所以直接投递文本即可

4、模拟按键 Enter ,Enter键在大漠模块里面的虚拟键代码是13,模拟进行按下和弹起的操作,因为大漠模块里面默认设置了按下和弹起操作的间隔时间,所以这里我们不需要再次设置。

5、通过 SetWindowState 设置窗口为取消激活状态,并且设置窗口最小化

6、解绑窗口

大漠插件从3.1235开始进行收费,我使用的是 3.1233 版本免费版的,大漠插件下载地址我也打包了,包含了官方的帮助文档:

链接: https://pan.baidu.com/s/1VJRdpl3scsLxbpxFAWZ_5A 提取码: mu25

C#调用大漠插件,发送QQ和微信消息的更多相关文章

  1. 调用大漠插件发送QQ和微信消息 C#版

    大漠插件:3.1233 找图,找色,识字,找字,窗口,按鼠标,按键盘 0.注册dm.dll: regsvr32 xxx\dm.dll 1.添加com引用: 2.dmsoft各种调用: 原理: 查找窗口 ...

  2. C#调用大漠插件的方法和实例

    大漠插件是一个很不错的东西,在按键精灵和易语言里面用得很多,可以后台找图找字,写游戏自动脚本用得特别多.前面写一个微信的自动脚本,查了一些资料,易语言不太熟悉,按键精灵功能上可能不好实现,就找了些资料 ...

  3. C#调用大漠插件

    大漠插件是一个很不错的东西,在按键精灵和易语言里面用得很多,可以后台找图找字,写游戏自动脚本用得特别多.前面写一个微信的自动脚本,查了一些资料,易语言不太熟悉,按键精灵功能上可能不好实现,就找了些资料 ...

  4. python调用大漠插件教程03窗口绑定实例

    怎样利用注册好的大漠对象来绑定窗口? 直接上代码,根据代码分析 from win32com.client import Dispatch import os from win32gui import ...

  5. CI框架使用PHPmail插件发送QQ邮件:

    有助请顶,不好请评.0:33 2016/3/12CI框架使用PHPmail插件发送QQ邮件:发送成功,不过修改了主机参数,还包含了一个phpmail中的一个另外的文件,详见下方:参见:http://c ...

  6. Delphi调用大漠插件示例

    Delphi XE2 版本调用大漠插件方法:打开Component->Import Component->默认Import a Type Library,点击Next->找到Dm.d ...

  7. Python调用大漠插件

    Python版本要用32位的?我去官网下载,太慢了,就在腾讯软件里面下载了一个,结果实验成功 import win32com.client dm = win32com.client.Dispatch( ...

  8. python调用大漠插件教程02大漠插件绑定测试工具

    什么是大漠插件绑定测试工具? 这是大漠插件为了方便使用者调试绑定窗口的模式而设计的,因为有些程序不会接受一般的鼠键事件的响应模式,每个程序所需要的响应模式都不尽相同,所以这个工具可以使我们在绑定窗口时 ...

  9. python调用大漠插件教程01注册大漠

    使用大漠有两种方法,一种是直接调用特殊的dll实现不注册就能使(本人不会),另一种则是注册后使用. 如何用python注册大漠? from win32com.client import Dispatc ...

随机推荐

  1. Failed to read candidate component错误

    <context:component-scan base-package="com.spdb"/> <mvc:annotation-driven/> 加上该 ...

  2. Type Systems

    This section deals with more theoretical aspects of types. A type system is a set of rules used by a ...

  3. 在js文件中写el表达式取不到值的原因及解决方法

    1.javascript是客户端执行,EL是在服务端执行,而服务端比客户端先执行,所以取不到值 2.要想获取"${jcDropClass.jcClass.id}"的值,可以在jsp ...

  4. CI框架源码研读(整体架构)

    有人说phper的深入要从研读mvc框架开始,我跳了一个常用的CI框架入手,主要是因为 CI框架简单轻巧,可以自己DIY功能!!! 1.首先来看CI的整体架构图: 其中:application是用户级 ...

  5. 4.spring:@Profile,AOP

    Profile: 可以根据当前的环境,动态激活和切换一系列的组件功能 指定组件在那个环境下才能被注册到容器中,不指定任何环境下都能注册到 1.加了环境标识的bean只有环境激活的时候才能注册到容器中 ...

  6. Exhaustive Search

    Write a program which reads a sequence A of n elements and an integer M, and outputs "yes" ...

  7. select下拉框之默认选项清空

    最近和小伙伴发现,select默认选项一般是提示信息,怎么才能让当我们点击下拉框时,可选的选项中没有默认的提示信息呢? 思路: 1.当点击下拉框时,让默认提示信息,即下拉框第一个选项移除. 2.当没有 ...

  8. 检查BUG插件 代码规范(Findbugs)插件 安装以及使用(idea)

    使用findbugs进行检查代码规范 Findbugs很多人都并不陌生,Eclipse中有插件可以帮助查找代码中隐藏的bug,IDEA中也有这款插件.这个插件可以帮助我们查找隐藏的bug,比较重要的功 ...

  9. 三、Hadoop 的 API

    1.环境搭建 <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop- ...

  10. chromium之dynamic_annotations

    看看介绍 // This file defines dynamic annotations for use with dynamic analysis // tool such as valgrind ...