当前位置: 移动技术网 > IT编程>开发语言>c# > 调用大漠插件发送QQ和微信消息

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

2019年08月21日  | 移动技术网IT编程  | 我要评论

0、注册dm.dll;

regsvr32 xxx\dm.dll

1、添加com引用;

2、dmsoft各种调用;

原理:

查找窗口hwnd→窗口激活→添加消息到文本框→回车→窗口取消激活

截图:

 

代码:

 1 class form1 : form
 2     {
 3         public form1()
 4         {
 5             var dm = new dmsoft();
 6             console.writeline($"大漠插件{dm.ver()}");
 7             console.writeline($"{application.productname}-{application.productversion}");
 8 
 9             clientsize = new size(600, 400);
10             maximizebox = false;
11             formborderstyle = formborderstyle.fixedsingle;
12 
13             var listview1 = new listview() {name = "lstview1", location = new point(0, 0), size = new size(300, this.clientrectangle.height), columns = {"句柄", "标题", "类名"}, backcolor = color.cornsilk, fullrowselect = true, gridlines = true, view = view.details, checkboxes = true, multiselect = true,};
14             var btnreload = new button() {name = "btnreload", text = "刷新(&r)", location = new point(300, 3), autosize = true};
15             var btnsend = new button() {name = "btnsend", text = "发送(&s)", location = new point(400, 3), autosize = true};
16             var txtmessage = new textbox() {name = "txtmessage", text = "hello world!", location = new point(300, 30), size = new size(this.width - 300, clientrectangle.height - 30), multiline = true};
17             this.controls.addrange(new control[] {listview1, btnreload, btnsend, txtmessage});
18             this.text = $"{productname}-{productversion}";
19 
20             btnreload.click += (sender, args) =>
21             {
22                 var hwnds = new list<int>();
23                 var classnames = "txguifoundation,chatwnd".split(',');
24                 foreach (var classname in classnames)
25                 {
26                     var win = dm.enumwindow(0, "", classname, 18);
27                     hwnds.addrange(win.split(',').where(x => !string.isnullorempty(x)).select(x => convert.toint32(x)));
28                 }
29 
30                 listview1.beginupdate();
31                 listview1.items.clear();
32                 foreach (var hwnd in hwnds)
33                 {
34                     listview1.items.add(hwnd.tostring()).subitems
35                         .addrange(new string[] {dm.getwindowtitle(hwnd), dm.getwindowclass(hwnd)});
36                 }
37 
38                 listview1.endupdate();
39             };
40             btnsend.click += (sender, args) =>
41             {
42                 var msg = txtmessage.text;
43                 foreach (listviewitem item in listview1.checkeditems)
44                 {
45                     var hwnd = convert.toint32(item.text);
46                     console.writeline($"sendmessage to {item.subitems[0].text}");
47                     dm.bindwindowex(hwnd, "gdi", "windows", "windows", "", 0);
48                     dm.setwindowstate(hwnd, 1);
49                     dm.setwindowstate(hwnd, 8);
50                     dm.sendstring2(hwnd, msg);
51                     dm.keydown(13);
52                     dm.keyup(13);
53                     dm.setwindowstate(hwnd, 9);
54                     dm.setwindowstate(hwnd, 2);
55                     dm.unbindwindow();
56                 }
57             };
58             this.load += (sender, args) => { btnreload.performclick(); };
59         }
60     }

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网