调用大漠插件发送QQ和微信消息 C#版
找图,找色,识字,找字,窗口,按鼠标,按键盘
0、注册dm.dll;
regsvr32 xxx\dm.dll
1、添加com引用;

2、dmsoft各种调用;
原理:
查找窗口hwnd→窗口激活→添加消息到文本框→回车→窗口取消激活
截图:

代码:
class Form1 : Form
{
public Form1()
{
var dm = new dmsoft();
Console.WriteLine($"大漠插件{dm.Ver()}");
Console.WriteLine($"{Application.ProductName}-{Application.ProductVersion}"); ClientSize = new Size(, );
MaximizeBox = false;
FormBorderStyle = FormBorderStyle.FixedSingle; var listView1 = new ListView() {Name = "lstView1", Location = new Point(, ), Size = new Size(, this.ClientRectangle.Height), Columns = {"句柄", "标题", "类名"}, BackColor = Color.Cornsilk, FullRowSelect = true, GridLines = true, View = View.Details, CheckBoxes = true, MultiSelect = true,};
var btnReload = new Button() {Name = "btnReload", Text = "刷新(&R)", Location = new Point(, ), AutoSize = true};
var btnSend = new Button() {Name = "btnSend", Text = "发送(&S)", Location = new Point(, ), AutoSize = true};
var txtMessage = new TextBox() {Name = "txtMessage", Text = "hello world!", Location = new Point(, ), Size = new Size(this.Width - , ClientRectangle.Height - ), Multiline = true};
this.Controls.AddRange(new Control[] {listView1, btnReload, btnSend, txtMessage});
this.Text = $"{ProductName}-{ProductVersion}"; btnReload.Click += (sender, args) =>
{
var hwnds = new List<int>();
var classNames = "TXGuiFoundation,ChatWnd".Split(',');
foreach (var className in classNames)
{
var win = dm.EnumWindow(, "", className, );
hwnds.AddRange(win.Split(',').Where(x => !string.IsNullOrEmpty(x)).Select(x => Convert.ToInt32(x)));
} listView1.BeginUpdate();
listView1.Items.Clear();
foreach (var hwnd in hwnds)
{
listView1.Items.Add(hwnd.ToString()).SubItems
.AddRange(new string[] {dm.GetWindowTitle(hwnd), dm.GetWindowClass(hwnd)});
} listView1.EndUpdate();
};
btnSend.Click += (sender, args) =>
{
var msg = txtMessage.Text;
foreach (ListViewItem item in listView1.CheckedItems)
{
var hwnd = Convert.ToInt32(item.Text);
Console.WriteLine($"SendMessage To {item.SubItems[0].Text}");
dm.BindWindowEx(hwnd, "gdi", "windows", "windows", "", );
dm.SetWindowState(hwnd, );
dm.SetWindowState(hwnd, );
dm.SendString2(hwnd, msg);
dm.KeyDown();
dm.KeyUp();
dm.SetWindowState(hwnd, );
dm.SetWindowState(hwnd, );
dm.UnBindWindow();
}
};
this.Load += (sender, args) => { btnReload.PerformClick(); };
}
}
调用大漠插件发送QQ和微信消息 C#版的更多相关文章
- C#调用大漠插件,发送QQ和微信消息
大漠插件就不过多介绍了,不知道的请查下百度.主要是讲解C#怎么调用大漠插件. 大漠插件提供了COM版本,C#直接点击引用,添加即可.然后注册下大漠插件到系统文件夹,注册代码如下: static str ...
- 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 ...
随机推荐
- #w30 2019年大前端技术周刊
本周是2019年第30周 会议 2019年ArchSummit全球架构师峰会 2019年7月在深圳举行了ArchSummit全球架构师峰会,里面有不少关于大前端的主题可以关注. 从0到1,移动政务应用 ...
- 干货:.net core实现读取appsettings.json配置文件(建议收藏)
看好多人不懂在.NET CORE中如何读取配置文件,我这里分两篇,这一篇介绍怎样通过appsettings.json配置读取文件信息.这里我会教大家两种方式: 第一种直接放到通用类库,那里想调往那调. ...
- Ecplise设置全局编码为UTF-8
简介 Eclipse工作空间(workspace)的缺省字符编码是操作系统缺省的编码,简体中文操作系统 (Windows XP.Windows 2000简体中文)的缺省编码是GB18030,Windo ...
- Abp小知识-如何全局设置DontWrapResult属性
demo地址 GitHub相关demo地址:https://github.com/PuzzledAlien/DotNetCore_Practice/tree/master/ABP.Demo/WebAp ...
- Thymeleaf常用语法:HTML属性设置
使用Thymeleaf的属性来设置HTML属性.(1)使用th:attr属性可以修改原来HTML节点的属性:(2)th:attr属性可以同时设置多个属性:(3)每一个HTML属性都有对应的Thymel ...
- How To Restore Rman Backups On A Different Node When The Directory Structures Are Different (Doc ID 419137.1)
How To Restore Rman Backups On A Different Node When The Directory Structures Are Different (Doc ID ...
- linux kernel下输入输出console如何实现【转】
转自:https://blog.csdn.net/skyflying2012/article/details/41078349 最近工作在调试usb虚拟串口,让其作为kernel启动的调试串口,以及u ...
- 文件操作NIO
在丑陋的 Java I/O 编程方式诞生多年以后,Java终于简化了文件读写的基本操作. 两个基本组件 文件或者目录的路径: 文件本身. 这块基本都是些记忆性的东西,没什么过多的需要写的地方,用的时候 ...
- request请求参数与http请求过程
request请求参数
- wbr 标签实现连续英文字符的精准换行你知道吗?
1.一般情况下的换行: word-break:break-all或者word-wrap:break-word <p>大家<wbr>想要<wbr>实现<wbr& ...