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

大漠插件就不过多介绍了,不知道的请查下百度。主要是讲解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和微信消息的更多相关文章
- 调用大漠插件发送QQ和微信消息 C#版
大漠插件:3.1233 找图,找色,识字,找字,窗口,按鼠标,按键盘 0.注册dm.dll: regsvr32 xxx\dm.dll 1.添加com引用: 2.dmsoft各种调用: 原理: 查找窗口 ...
- C#调用大漠插件的方法和实例
大漠插件是一个很不错的东西,在按键精灵和易语言里面用得很多,可以后台找图找字,写游戏自动脚本用得特别多.前面写一个微信的自动脚本,查了一些资料,易语言不太熟悉,按键精灵功能上可能不好实现,就找了些资料 ...
- C#调用大漠插件
大漠插件是一个很不错的东西,在按键精灵和易语言里面用得很多,可以后台找图找字,写游戏自动脚本用得特别多.前面写一个微信的自动脚本,查了一些资料,易语言不太熟悉,按键精灵功能上可能不好实现,就找了些资料 ...
- python调用大漠插件教程03窗口绑定实例
怎样利用注册好的大漠对象来绑定窗口? 直接上代码,根据代码分析 from win32com.client import Dispatch import os from win32gui import ...
- CI框架使用PHPmail插件发送QQ邮件:
有助请顶,不好请评.0:33 2016/3/12CI框架使用PHPmail插件发送QQ邮件:发送成功,不过修改了主机参数,还包含了一个phpmail中的一个另外的文件,详见下方:参见:http://c ...
- Delphi调用大漠插件示例
Delphi XE2 版本调用大漠插件方法:打开Component->Import Component->默认Import a Type Library,点击Next->找到Dm.d ...
- Python调用大漠插件
Python版本要用32位的?我去官网下载,太慢了,就在腾讯软件里面下载了一个,结果实验成功 import win32com.client dm = win32com.client.Dispatch( ...
- python调用大漠插件教程02大漠插件绑定测试工具
什么是大漠插件绑定测试工具? 这是大漠插件为了方便使用者调试绑定窗口的模式而设计的,因为有些程序不会接受一般的鼠键事件的响应模式,每个程序所需要的响应模式都不尽相同,所以这个工具可以使我们在绑定窗口时 ...
- python调用大漠插件教程01注册大漠
使用大漠有两种方法,一种是直接调用特殊的dll实现不注册就能使(本人不会),另一种则是注册后使用. 如何用python注册大漠? from win32com.client import Dispatc ...
随机推荐
- 文件是数据(字节)流的抽象-为什么C++中会把文件操作抽象为fstream?
这不过是返祖罢了.正确的问题是为什么会把数据流抽象成文件. 设备-字节流-文件. 一切皆为文件,所有不同种类的类型都被抽象成文件(比如:块设备,socket套接字,pipe队列). 文件抽象为数据流一 ...
- 解决FileUpload上传大文件报错
<system.webServer> <security> <requestFiltering> <requestLimits maxAllowedConte ...
- ARM v8-A 系列CPU的MMU隐射分析
ARM v8-A 系列CPU的MMU隐射分析 摘要:V8-A系列CPU有ELX,X为0~3等4个异常级别,又有AArch64和AArch32两种执行状态,异常级别可以决定执行状态,而对应着执行状态,M ...
- IE下内容居中
ie8下调了很长时间的居中问题,加一个body {text-align:center;},居然解决了.. 参考解决答案:*html * {margin:0px; padding:0;} 然后在盒子里b ...
- LeetCode 简单 -二进制求和(105)
给定两个二进制字符串,返回他们的和(用二进制表示). 输入为非空字符串且只包含数字 1 和 0. 示例 1: 输入: a = "11", b = "1" 输出: ...
- SHELL脚本简单的赋值与递增
Count=`expr $Count + 1`;#可以在各种shell执行,其他类C的写法只能在指定的bash版本执行; 赋值不能带$, 带$相当于字符串常量了;执行脚本参考如下 #!/bin/sh ...
- Zabbix——设置报警阈值
前提条件: 1. Zabbix-server 版本为4.0 2.邮件告警正常使用 3. 阈值改为1分钟进行邮件发送 点击: 找到agent,点击触发器: 设置网络ping包进行检测
- WSO2 API Manager 替换mysql作为数据库,解决AuthorizationUtils Could not set authorizations for the root问题
按照wso2官网(https://docs.wso2.com/display/ADMIN44x/Changing+to+MySQL)配置AM的数据库,想从H2换成Mysql5.7,费了将近一天的时间, ...
- youku客户端
文件结构 config import os IP_PORT = ('127.0.0.1',8080) BASE_DIR = os.path.dirname(os.path.dirname(__file ...
- 关于Hibernate基于version的乐观锁
刚刚接触SSH框架,虽然可能这个框架已经比较过时了,但是个人认为,SSH作为一个成熟的框架,作为框架的入门还是可以的. 马马虎虎学完了Hibernate的基础,总结一点心得之类的. 学习Hiberna ...