C# 发送WM_COPYDATA消息--网络COPY供个人参考

C# 发送WM_COPYDATA消息

using System.Runtime.InteropServices;

[DllImport("User32.dll", EntryPoint = "FindWindow")]         private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);         [DllImport("User32.dll", EntryPoint = "SendMessage")]   //用于发送信息给窗体           private static extern int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, ref COPYDATASTRUCT lParam);         [StructLayout(LayoutKind.Sequential)]         public struct COPYDATASTRUCT         {             public IntPtr dwData;             public int cbData;             public IntPtr lpData;         }

          COPYDATASTRUCT cds;             string a = "032";             byte[] sarr = System.Text.Encoding.Default.GetBytes(a);             cds.dwData = (IntPtr)0;             cds.cbData = a.Length;             cds.lpData = Marshal.AllocHGlobal(sarr.Length);             Marshal.Copy(sarr, 0, cds.lpData, sarr.Length);             IntPtr p = FindWindow("#32770", "GetMessage");             SendMessage(p, 0x004A, (IntPtr)0,ref cds);

时间: 2024-12-14 17:46:53

C# 发送WM_COPYDATA消息--网络COPY供个人参考的相关文章

跨进程发送消息数据(发送WM_COPYDATA消息,够简单的)

1 //1.发送窗体 2 procedure TForm2.Button1Click(Sender: TObject); 3 var 4 h: HWND; 5 Size: Integer; 6 CopyDataStruct: TCopyDataStruct; 7 begin 8 h := FindWindow(nil, '接收窗口'); { 按标题查找目标窗口 } 9 if h > 0 then 10 begin 11 Size := ByteLength(Edit1.Text) + 2; {

通过WM_COPYDATA消息完成进程间通信

完成进程间通信最简单的方式就是发送WM_COPYDATA消息. (1)发送WM_COPYDATA消息 SendMessage(接收窗口句柄, WM_COPYDATA, (WPARAM)发送窗口句柄, (LPARAM)&copyData); 其中的copyData是要发送的数据,类型为COPYDATASTRUCT结构体: typedef struct tagCOPYDATASTRUCT { DWORD dwData; DWORD cbData; PVOID lpData; } COPYDATAST

利用WM_COPYDATA消息实现进程间通信

进程间通信最简单的方式就是发送WM_COPYDATA消息,下面通过例子来实现. 发送WM_COPYDATA消息: SendMessage(hRecvWnd, WM_COPYDATA, (WPARAM)hSendWnd, (LPARAM)&CopyData); 其中的CopyData为COPYDATASTRUCT结构类型,该结构定义如下: typedef struct tagCOPYDATASTRUCT { DWORD dwData; DWORD cbData; PVOID lpData; } C

ZeroMQ接口函数之 :zmq_msg_send – 从一个socket发送一个消息帧

ZeroMQ 官方地址 :http://api.zeromq.org/4-0:zmq_msg_send zmq_msg_send(3) ØMQ Manual - ØMQ/3.2.5 Name zmq_msg_send – 从一个socket发送一个消息帧 Synopsis int zmq_msg_send (zmq_msg_t *msg, void *socket, int flags); Description zmq_msg_send函数和zmq_sendmsg(3)函数是完全相同的,只是z

VC++ 在两个程序中 传递字符串等常量值的方法:使用了 WM_COPYDATA 消息的

消息作用:    在进程间共享数据(内部通过创建内存映射文件) 消息介绍:需要用到的数据结构/类型:typedef struct tagCOPYDATASTRUCT {    ULONG_PTR dwData;    DWORD cbData;    PVOID lpData;} COPYDATASTRUCT, *PCOPYDATASTRUCT; 结构体参数说明:    dwData(ULONG)   保存一个数值, 可以用来作标志等    lpData(void*)   待发送的数据的起始地址

C#开发微信.NET平台MVC微信开发 发送普通消息Demo以及收不到消息的问题

不得不说现在微信非常火,微信开放平台可以自己写程序跟用户交互,节省了前台开发成本,免去用户装客户端的烦恼.于是今天兴致来潮,想做一个试试. 首先找到了开发者文档,看了看,蛮简单的.(公众号早已申请,有兴趣可以关注看看:zyjsoft) 第一步(提供接口,供微信调用,由于是HTTP请求,于是我用MVC模式做了一个简单的接口): //认证接口 public ActionResult WeiXin(string signature, string timestamp, string nonce, st

ActiveMQ 部署及发送接收消息

一.           下载 下载地址:http://activemq.apache.org/ 我这里使用的版本为当前最新5.8.0. 下载版本有Windows和Linux两个版本,且都分为32位和64位.根据自己需要选择下载. 二.           安装 我这里下载的为windows的32位版本(apache-activemq-5.8.0-bin.zip),下载后直接解压到需要安装的目录或在直接解压到当前目录也可,解压完安装也完成. 解压后目录如上图,里面包含了示例和文档,及所有的jar

Invalidate(TRUE)与Invalidate(FALSE)区别(前者会发送WM_ERASEBKGND消息全部刷新,然后使用WM_PAINT消息绘制,而后者只发送WM_PAINT消息)

使用Invalidate(TRUE)函数时,它会向消息队列中添加了WM_ERASEBKGND和WM_PAINT两个消息. 使用Invalidate(FALSE)函数时,它只会向消息队列中添加了WM_PAINT消息. WM_ERASEBKGND消息的作用以背景色填充客户区,因此他会将之前绘制的图像情况,然后响应WM_PAINT消息后,会调用OnPaint函数,进行响应图像绘制工作.故Invalidate(TRUE)相当于将原来画的内容清空后,重新绘制. 而Invalidate(TRUE)只发送WM

VC++ 在两个程序中 传送字符串等常量值的方法:使用了 WM_COPYDATA 消息(转载)

转载:http://www.cnblogs.com/renyuan/p/5037536.html VC++ 在两个程序中 传递字符串等常量值的方法:使用了 WM_COPYDATA 消息的 消息作用:    在进程间共享数据(内部通过创建内存映射文件) 消息介绍:需要用到的数据结构/类型:typedef struct tagCOPYDATASTRUCT {    ULONG_PTR dwData;    DWORD cbData;    PVOID lpData;} COPYDATASTRUCT,