using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;namespace sendmessage
{class SendMsg{//C#中调用Win32中的API[DllImport("user32.dll", EntryPoint = "FindWindow", SetLastError = true)]private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);[DllImport("user32.dll", EntryPoint = "FindWindowEx", SetLastError = true)]private static extern IntPtr FindWindowEx(IntPtr hwndParent, uint hwndChildAfter, string lpszClass, string lpszWindow);[DllImport("user32.dll", EntryPoint = "SendMessage", SetLastError = true, CharSet = CharSet.Auto)]private static extern int SendMessage(IntPtr hwnd, uint wMsg, int wParam, int lParam);[DllImport("user32.dll")]private static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, [MarshalAs(UnmanagedType.LPStr)] string lParam);[DllImport("user32.dll")]static extern IntPtr GetDlgItem(IntPtr hDlg, int nIDDlgItem);uint WM_SETTEXT = 0xC;private IntPtr hwndCalc;private IntPtr hwndThree;string backstring;/// <summary>/// 发消息/// <param name="windowName">窗体名</param>/// <param name="nIDDlgItem">控件TD</param>/// <param name="yourMsg">消息</param>/// </summary>public string sendstring(string windowName, int nIDDlgItem,string yourMsg){hwndCalc = FindWindow(null, windowName);if (hwndCalc != IntPtr.Zero){hwndThree = GetDlgItem(hwndCalc, nIDDlgItem);if (hwndThree != IntPtr.Zero){SendMessage(hwndThree, WM_SETTEXT, IntPtr.Zero,yourMsg);}else{backstring = "没有找到子控件,请检查控件ID是否错误!";}}else{backstring = "没有找到主窗体,请检查窗体名是否错误!";}return backstring;}}
}

调用的时候很方便,需要窗体名,控件ID,和需要发送的信息。spy++ 是微软 Visual Studio 编译器自带的一款工具,可以用来查看选定的窗口、线程、进程或消息的属性等等。

SendMsg send = new SendMsg();  
 string errorInf= send.sendstring("界面",0x3ee,"发送的数据");

c#向MFC窗体发送消息相关推荐

  1. 向Window窗体发送消息,控制程序的运行.

    向Window窗体发送消息,控制程序的运行. 下面是对Windows Media Player进行控制的操作示例. 1.运行Windows Media Player; 2.运行spyxx.exe,点击 ...

  2. C# 获得窗体句柄并发送消息(利用windows API可在不同进程中获取)

    C#使用Windows API获取窗口句柄控制其他程序窗口 编写程序模拟鼠标和键盘操作可以方便的实现你需要的功能,而不需要对方程序为你开放接口.比如,操作飞信定时发送短信等.我之前开发过飞信耗子,用的 ...

  3. C++ Custom Control控件 向父窗体发送对应的消息

    向父窗体发送消息 ,这里只讲发送 WM_NOTIFY  消息, 其它消息是相同的 在 控件中的某个函数中 设置发送消息的程序 首先定义一个WM_NOTIFY消息的专用结构. NMHDR nm; nm. ...

  4. C#中发送消息给指定的窗口到消息循环

    public class Note     {         //声明 API 函数         [DllImport("User32.dll", EntryPoint =  ...

  5. MFC实现从一个窗口向另一个窗口发送消息的两种方法

    实现从一个窗口向另一个窗口发送消息,使用过下面两种方法 /*方法一:通过用SDK的标准API来查找其他对话框窗口返回句柄,并且发送信息 HWND hWnd; //通过SDK的FindWindow函数得 ...

  6. MFC中从一个类向其他类发送消息的方法

    假设准备从A类向B类发送一个消息WM_MSG 首先:在B类中定义这个用户自定义消息,消息响应函数,并关联消息和消息响应函数 然后:在A类头文件中包含B类的头文件,并定义一个B类类型的指针成员变量,假设 ...

  7. C# 重写WndProc及发送消息

    阅读目录 重写WndProc方法来处理 Windows 消息 C# 重写WndProc 拦截 发送 系统消息 + windows消息常量值(2) C# 重写WndProc 拦截 发送 系统消息 + w ...

  8. MFC 窗体大小控制

    窗口 让窗口一启动就最大化 把应用程序类(CxxxApp)的InitInstance()函数中的m_pMainWnd->ShowWindow(SW_SHOW);改为m_pMainWnd-> ...

  9. 窗口发送消息参数详解

    窗口发送消息参数详解 //    窗口.发送消息    函数功能: 将指定的消息发送到一个窗口,同win32 api 里面的SendMessage等同的效果 中文函数原型: 发送消息(hwnd,msg ...

最新文章

  1. c语言大顶堆数组维护,图解大顶堆的构建、排序过程
  2. 线段树分裂与合并 ---- 树上差分 P4556 [Vani有约会]雨天的尾巴 /【模板】线段树合并
  3. 钱学森在30年前对虚拟现实和元宇宙的思考
  4. 一个故事讲清楚BIO NIO 异步
  5. linux 下 upx 脱壳笔记
  6. jupyter跑Java,C++/C,R
  7. axure如何实现跳转_Axure教程:网易云音乐首页原型设计
  8. C++类型萃取之type_traits和type_info
  9. 实现分页统计记录总数时: sql语句的异常
  10. php框架启动过程,框架启动方式 - CrossPHP 框架文档
  11. 详尽解读中美科技差距究竟多么巨大
  12. phpSQLiteAdmin - 基于Web的SQLite数据库管理工具 - OPEN 开发经验库
  13. 科技爱好者周刊:第 100 期
  14. 2015年蓝桥杯省赛C++(A组) 第三题 奇妙的数字
  15. 精美男女装、韩版、日系证件照素材合集,P个美美的证件照,不再烦恼
  16. 用spark中DataFrame对数据进行去重、缺失值处理、异常值处理
  17. java 罗马数字_罗马数字 | 学步园
  18. Unity可编程渲染管线系列(十)细节层次(交叉淡化几何体)
  19. 利用vegas去除视频水印
  20. css3循环360度图片旋转

热门文章

  1. Android 即时通讯开发小结(一)
  2. Java注解学习一:注解术语
  3. Qt学习: QFileDialog和QMessageBox的用法和程序示例
  4. 挨踢部落故事汇(6):女攻城狮职位晋升记
  5. mongoDB高级查询
  6. websevice中runtime modeler error: Wrapper class com.ws.jaxws.Add is not found问题的解决办法
  7. 用 Python 实现的线程池
  8. 【mysql系列】细谈explain执行计划之“谜”
  9. java webservice 接收数据_WebService客户端,接收数据解析存入数据库
  10. iOS12系统图片heic如何在电脑上查看