C# message简单实现窗口间信息接收与发送

刚接触windows 不同程序 窗口消息传递,不理解IntPtr SendMessage(int hWnd, int msg, IntPtr wParam, IntPtr lParam)这函数怎么用?消息内容怎么传递过去,还遇到需要message结构体?IntPtr怎么用呢?

但实际只是用来传个数据,不需要这么复杂,就简单写了下面程序。


1.发送端


public partial class Form1 : Form{private const int WM_USER = 0x0400;  //自定义消息号一般开始于0x0400,[DllImport("User32.dll", EntryPoint = "SendMessage")]private static extern IntPtr SendMessage(int hWnd, int msg, IntPtr wParam, IntPtr lParam); //发送消息函数。//找出窗口句柄handler,用起来方便。有看到过返回值时IntPtr[DllImport("User32.dll", EntryPoint = "FindWindow")]private static extern int FindWindow(string lpClassName, string lpWindowName);  public Form1(){InitializeComponent();this.Text = "消费者";label1.Text = "向X300A";}private void button1_Click(object sender, EventArgs e){int WINDOW_HANDLER;  //int msgNum;if(int.TryParse(textBox1.Text,out msgNum)==false)  //获取用户信息内容,这里只接受数字。{return;}WINDOW_HANDLER = FindWindow(null, "X300A");//通过窗口标题,获得句柄SendMessage(WINDOW_HANDLER, WM_USER, new IntPtr(msgNum), IntPtr.Zero);//前面两个参数,基本固定格式。//后面两个参数,把需要传递的参数转为IntPtr,就好了。//第四个参数因为没什么传的,这里就设为空}}


2.接收端


public partial class Form1 : Form{private const int WM_USER = 0x0400;  //自定义消息号一般开始于0x0400,发送端也是设置成这个public Form1(){InitializeComponent();this.Text = "X300A";label1.Text = "接收消费者信息";}protected override void WndProc(ref Message m)   //重新函数,处理接收的信息{switch (m.Msg){case WM_USER:string message =  m.WParam.ToString(); //转换成string类型,这样就能接收到发送端信息。textBox1.AppendText("接受到信息:"+message+"\n");Popup p1 = new Popup();            //自定义的一个窗口if(p1.ShowDialog()==DialogResult.OK)  {p1.Dispose();textBox1.AppendText("启动完毕\n");}break;default: break;}base.WndProc(ref m);}}

3.演示图



参考链接:

http://blog.sina.com.cn/s/blog_45eaa01a01013zbs.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/281020.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在Kubernetes集群上部署和管理JFrog Artifactory

JFrog Artifactory是一个artifacts仓库管理平台,它支持所有的主流打包格式、构建工具和持续集成(CI)服务器。它将所有二进制内容保存在一个单一位置并提供一个接口,这使得用户在整个应用程序开发和交付过程中,能更易于…

已知思科ASA设备漏洞仍在其新版本中存在

近日,名为“Shadow Brokers(影子经纪人)”的黑客组织声称成功入侵了跟NSA相关的Equation Group(方程式组织)的计算机系统,并成功窃取到了大量的机密信息以及黑客工具。随后,“Shadow Brokers”黑客组织将60%的泄漏文件在网上进行了公布&#…

Yii Listview

转载于:https://www.cnblogs.com/xiong63/p/8546376.html

.NET 7 的 AOT 到底能不能杠反编译?

一:背景 1.讲故事在B站,公众号上发了一篇 AOT 的文章后,没想到反响还是挺大的,都称赞这个东西能抗反编译,可以让破解难度极大提高,可能有很多朋友对逆向不了解,以为用 ILSpy,Reflector,DnSpy 这…

google hdr+_更好的隐私权控制使Google+死了

google hdrEarlier this year, Google started a project to review third-party developer access to Google accounts through the use of APIs. It found a security breach surrounding Google, and is now shutting the service down, at least for consumers. 今年年初&a…

新0-Day漏洞或将给Linux桌面发行版带来浩劫

Linux 的各个发行版都一直强调安全及其相关元素,比如防火墙、渗透测试、沙盒、无痕上网和隐私等等,但事实上可能并没有想象中的那么安全。安全研究员 Chris Evans 公开了其发现的针对 Linux 桌面发行版的 0day 漏洞,利用特制的音频文件入侵 L…

一份详尽的利用 Kubeadm部署 Kubernetes 1.13.1 集群指北

2019独角兽企业重金招聘Python工程师标准>>> 概 述 Kubernetes集群的搭建方法其实有多种,比如我在之前的文章《利用K8S技术栈打造个人私有云(连载之:K8S集群搭建)》中使用的就是二进制的安装方法。虽然这种方法有利于我…

.NET性能优化-使用内存+磁盘混合缓存

我们回顾一下上一篇文章中的内容,有一个朋友问我这样一个问题:我的业务依赖一些数据,因为数据库访问慢,我把它放在 Redis 里面,不过还是太慢了,有什么其它的方案吗?其实这个问题比较简单的是吧&…

最小生成树详解

注:本文算法使用链式前向星数据结构实现。学习链接:链式前向星-学习笔记 一、Prim算法 普通prim算法模板: //用前向星录数据的时候记得把head初始化为-1 fill(dist,distLEN,MAX); memset(vis,0,sizeof vis); int ans0; dist[1]0; //如…

dropbox文件_Dropbox即将发布的扩展程序更新将添加更多文件编辑支持,包括Pixlr照片...

dropbox文件Dropbox is perhaps the best-known cloud storage platform for consumers, but it’s hoping to become something more. With an upcoming overhaul to its user tools, Dropbox will add more complex editing tools, in addition to what it already provides …

黑客窃取思科、IBM与甲骨文认证管理系统内的敏感数据

目前一套被思科、F5、IBM以及甲骨文等企业所广泛使用的认证管理系统(即Credential Manager System)正面临着数据泄露风险,其中的敏感数据也许已经被黑客们所获取。 根据Pearson VUE(主营计算机测试方案开发与交付)发布的一项公告,某恶意软件已经藏身于该…

Spring下载地址

下载地址:https://repo.spring.io/libs-release-local/org/springframework/spring/ 进入后可选择下载版本,选择版本后,进入目录结构。其中dist是最终发布版本,包含开发所需lib和源码。docs是开发文档。schema是一些约束文件。 Do…

.NET7发布,一大批优秀.NET6项目没人看了吗...(都是好项目)

恍惚间都已经.NET7.0了,不能再呆在旧版本了!这里分享一套Vue3 Axios TS Vite Element Plus .NET 6 WebAPI JWT SqlSugar的通用管理后台,各种最新框架组件,学习必备!这里把源码、脚本以及专门录制的视频教程都打…

Python的日志记录-logging模块的使用

一、日志 1.1什么是日志 日志是跟踪软件运行时所发生的事件的一种方法,软件开发者在代码中调用日志函数,表明发生了特定的事件,事件由描述性消息描述,同时还包含事件的重要性,重要性也称为级别或严重性。 1.2何时使用日…

询问HTG:白噪声屏幕保护程序,有效的文件命名以及从密码泄露中恢复

Once a week we share three of the questions we’ve answered from the Ask HTG inbox with the greater readership; this week we’re looking at white noise screen savers, efficient file naming systems, and recovering from a password compromise. 每周一次&#…

专家预测第二波WannaCry勒索病毒攻击即将到来!

WannaCry的传播脚步今晨戛然而止 今天一大早,全网的WannaCry蠕虫病毒攻击突然减弱消退了!所有这一切功劳来自于英国研究人员malwaretech,他通过逆向发现WannaCry代码中有一个特殊域名地址: www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.co…

01.HTML基础命令笔记

目录 HTML结构 body内常用标签 常用 div与span img a标签 超链接标签 其他格式标签 列表 表格 表单 select标签 label标签 textarea多行文本 HTML结构 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"&…

ios numlock_从“提示”框:默认情况下启用NumLock,无广告的iOS应用和立体声供电的派对灯...

ios numlockOnce a week we round up some of the great tips readers have sent into the tip box. This week we’re looking at how to enable the NumLock by default, stripping ads from iOS apps, and turning Christmas lights into audio-responsive party lights. 每…

Windows 7 自动更新失败导致无法进系统解决方案

故障现象&#xff1a;自动更新后&#xff0c;重启电脑&#xff0c;提示&#xff1a;&#xff08;配置Windows update 失败 还原更改 请勿关闭计算机&#xff09;&#xff0c; 而计算机一直停留该界面&#xff0c;如果半个小时以上都无反应。此时&#xff0c;就不要再继续等待了…

PaperWeekly 第28期 | 图像语义分割之特征整合和结构预测

“ 余昌黔 华中科技大学硕士 研究方向为图像语义分割 知乎专栏 https://zhuanlan.zhihu.com/semantic-segmentation 前言 近来阅读了 PASCAL VOC 2012 排行榜上前几的文章&#xff0c;包括 PSPNet 和林国省老师的几篇论文&#xff0c;觉得现在在 semantic segmentation 领域对于…