C# 使用SendMessage进行进程通信,可发送字符串,结构体

发送时只能以结构体形式发送,类的话会提示“指定结构必须能直接复制到本机结构中,或是具有布局信息 ”的错误提示

以下两种结构体示例都可以被发送

 public struct A{public A(int a){name = "heow";array = new double[3] { 1, 2, 5.6 };}string name;//{ get; set; }double[] array ;//{ get; set; }}/// <summary>/// 定义结构体/// </summary>public struct COPYDATASTRUCT{public IntPtr dwData; //可以是任意值public int cbData;    //指定lpData内存区域的字节数[MarshalAs(UnmanagedType.LPStr)]public string lpData; //发送给目录窗口所在进程的数据}

       

发送方:

        [DllImport("User32.dll", EntryPoint = "SendMessage")]private static extern int SendMessage(int hWnd, int Msg, int wParam, ref COPYDATASTRUCT lParam);[DllImport("User32.dll", EntryPoint = "FindWindow")]private static extern int FindWindow(string lpClassName, string lpWindowName);const int WM_COPYDATA = 0x004A;//必须是这个数值,不能更改private void btnSend_Click(object sender, EventArgs e){int hWnd = FindWindow(null, @"消息接受者");if (hWnd == 0){MessageBox.Show("未找到消息接受者!");}else{string sendString = "测试发送数据";byte[] sarr = System.Text.Encoding.Default.GetBytes(sendString);int len = sarr.Length;COPYDATASTRUCT cds;cds.dwData = (IntPtr)0 ;cds.cbData = len + 1;cds.lpData = sendString;SendMessage(hWnd, WM_COPYDATA, 0, ref cds);}}

接受方:

    private static int WMA_InterPro = 0x004A;protected override void DefWndProc(ref Message m){if (m.Msg == WMA_InterPro){COPYDATASTRUCT cds = new COPYDATASTRUCT();Type t = cds.GetType();cds = (COPYDATASTRUCT)m.GetLParam(t);string receiveInfo=cds.lpData;  }else{base.DefWndProc(ref m);}}

PS:

C# 使用SendMessage进行进程通信,可发送字符串,结构体(不能发送类类型)

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

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

相关文章

批量为本地视频生成字幕文件,并可将字幕文件翻译成其它语言

VideoSubtitleGenerator 批量为本地视频生成字幕文件&#xff0c;并可将字幕文件翻译成其它语言 本项目基于 macOS, node 环境运行&#xff0c;暂未兼容 windows 环境 &#x1f310;Github地址 https://github.com/buxuku/VideoSubtitleGenerator 初衷 自己有一大批外文视频&…

力扣例题(用栈实现队列)

目录 链接. - 力扣&#xff08;LeetCode&#xff09; 描述 思路 push pop peek empty 代码 链接. - 力扣&#xff08;LeetCode&#xff09; 描述 思路 push 例如我们将10个元素放入栈中&#xff0c;假设最左边为栈顶&#xff0c;最右侧为栈底 则为10,9,8,7,6,5,4,3,…

嵌入式 - GPIO编程简介

An Introduction to GPIO Programming By Jeff Tranter Wednesday, June 12, 2019 编者按&#xff1a;本 2019 年博客系列是 ICS 最受欢迎的系列之一&#xff0c;现已更新&#xff08;2022 年 12 月&#xff09;&#xff0c;以确保内容仍然准确、相关和有用。 本博客是 Integr…

实体类和Entity Class之间有什么联系

实体类&#xff08;Entity Class&#xff09;和Entity Class在本质上是相同的&#xff0c;它们都是面向对象编程&#xff08;OOP&#xff09;中用于表示具有业务逻辑意义的实体的类。 具体来说&#xff0c;实体类通常被设计用于代表真实世界中的对象或概念&#xff0c;这些对象…

PWRWER

编译烧录完代码之后&#xff0c;按下复位键屏幕会进行刷新&#xff0c;数据不会丢失 如果按下按键&#xff0c;进行页擦除&#xff0c;之后再按下复位键&#xff0c;发现屏幕不会再进行刷新&#xff0c;原因是程序已经被擦除&#xff0c;损毁&#xff0c;无法运行&#xff0c;此…

2024OD机试卷-查找接口成功率最优时间段 (java\python\c++)

题目:查找接口成功率最优时间段 题目描述 服务之间交换的接口成功率作为 服务调用 关键质量特性,某个时间段内的接口失败率使用一个数组表示, 数组中每个元素都是单位时间内失败率数值,数组中的数值为0~100的整数, 给定一个数值(minAverageLost)表示某个时间段内平均失败…

图片转word如何转换?

要将图片转换为Word文档&#xff0c;你可以使用以下方法之一&#xff1a; 以上这些方法都可以帮助你将图片中的文本转换为可编辑的Word文档&#xff0c;你可以根据自己的喜好和需求选择其中一种方法来操作。 使用OCR软件或在线工具&#xff1a;有许多OCR&#xff08;Optical Ch…

【数据库】为何选择B+树作为索引?与红黑树、B树的对比

摘要&#xff1a; 数据库索引是数据库系统中至关重要的组成部分&#xff0c;影响着数据检索的效率和性能。本文将探讨为何数据库选择B树作为索引的原因&#xff0c;并分别分析红黑树和B树在此场景中的劣势。 介绍&#xff1a; 数据库索引是数据库系统中的重要组成部分&#xf…

实战LangChain(六):深入LangGraph的高级功能与最佳实践

实战LangChain(六):深入LangGraph的高级功能与最佳实践 实战LangChain(一):构建您的第一个聊天机器人_langchai 机器人 实战LangChain(二):探索RAG——为聊天机器人注入知识-CSDN博客 实战LangChain(三):深化交互——利用Neo4j提升聊天机器人的对话能力 实战La…

电子资源|基于SSM+vue的电子资源管理系统(源码+数据库+文档)​

电子资源管理系统 目录 基于SSMvue的电子资源管理系统 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2管理员功能模块 5.2.1管理员功能模块 5.2.2用户功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&am…

【Qt 学习笔记】Qt常用控件 | 多元素控件 | Tree Widget的说明及介绍

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt常用控件 | 多元素控件 | Tree Widget的说明及介绍 文章编号&#x…

python代码实现TF-IDF

1、TF-IDF解释 TF-IDF&#xff08;Term frequency–inverse document frequency&#xff09;&#xff0c;中文翻译就是词频 - 逆文档频率&#xff0c;是一种用来计算关键词的传统方法。 TF&#xff08;Term Frequency&#xff09;&#xff1a;TF 的意思就是词频&#xff0c;是…

云计算的优势与未来发展

随着数字化转型的蓬勃发展&#xff0c;云计算作为信息技术应用的基础设施&#xff0c;逐渐成为企业的首选。云计算以其诸多优势和未来发展趋势&#xff0c;为企业带来了更高效、灵活和创新的IT解决方案&#xff0c;助力企业实现数字化转型和业务发展。 云计算的优势 首先&…

C#中的隐式类型转换和显式类型转换

在C#中&#xff0c;类型转换分为隐式类型转换&#xff08;Implicit Type Conversion&#xff09;和显式类型转换&#xff08;Explicit Type Conversion&#xff09;&#xff0c;也称为隐式转换和强制转换。 隐式类型转换&#xff08;Implicit Type Conversion&#xff09; 隐…

SQL Server共享功能目录显示灰色无法自行选择

SQL Server共享功能目录显示灰色无法自行调整 一、 将之前安装SQL Server卸载干净 二、 清空注册表 1. 打开注册表&#xff0c;winR&#xff0c;输入regedit 2. 注册表-》编辑-》查找&#xff0c;输入C:\Program Files\Microsoft SQL Server\ 3. 注册表-》编辑-》查找&#x…

算法小记(二分)

题目描述: 输入 &#x1d45b;n 个不超过 109109 的单调不减的&#xff08;就是后面的数字不小于前面的数字&#xff09;非负整数 &#x1d44e;1,&#x1d44e;2,…,&#x1d44e;&#x1d45b;a1​,a2​,…,an​&#xff0c;然后进行 &#x1d45a;m 次询问。对于每次询问&a…

docker+nginx+Jenkins自动构建

文章目录 前言一、实操记录问下AI&#xff1a;jenkins 配置新增一个mobilegit配置Build TriggersBuild EnvironmentBuild StepsPost-build Actions 上面一顿配置下来&#xff0c;构建 -- FAILURE 总结 前言 在已有docker-Jenkins-nginx 部署方案上&#xff0c;在另外一台测试…

C++实现一个简单的控制cpu利用率的程序

写一个程序&#xff0c;让控制cpu利用率在20%左右 思路很简单&#xff1a;每个循环控制sleep的时间占比 #include <iostream> #include <chrono> #include <unistd.h>int main() {int ratio 20;int base_time 1000;int sleeptime base_time * (100-ratio…

【计算机网络篇】数据链路层(10)在物理层扩展以太网

文章目录 &#x1f354;扩展站点与集线器之间的距离&#x1f6f8;扩展共享式以太网的覆盖范围和站点数量 &#x1f354;扩展站点与集线器之间的距离 &#x1f6f8;扩展共享式以太网的覆盖范围和站点数量 以太网集线器一般具有8~32个接口&#xff0c;如果要连接的站点数量超过了…

10分钟入门pandas(一)

pandas 是基于python语言的数据分析处理库,使用广泛。本文主要参考pandas的官方入门指导,并结合自己入门使用的一些常用操作进行说明。 pandas通常和numpy结合使用,一般通过如下语句导入numpy和pandas库。 import numpy as np import pandas as pd一. pandas 数据结构 pan…