using System; using System.Text; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Runtime.InteropServices;
public class TestForm1 : System.Windows.Forms.Form { private System.Windows.Forms.Button button1; private System.Windows.Forms.Button button2;
private System.ComponentModel.Container components = null;
[STAThread] static void Main() { Application.Run(new TestForm1()); }
public TestForm1() { InitializeComponent(); } protected override void Dispose( bool disposing ) { if( disposing ) { if(components != null) { components.Dispose(); } } base.Dispose( disposing ); }
#region Windows 窗体设计器生成的代码 private void InitializeComponent() { this.button1 = new System.Windows.Forms.Button(); this.button2 = new System.Windows.Forms.Button(); this.SuspendLayout(); // // button1 // this.button1.Location = new System.Drawing.Point(32, 24); this.button1.Name = "button1"; this.button1.TabIndex = 0; this.button1.Text = "button1"; this.button1.Click += new System.EventHandler(this.button1_Click); // // button2 // this.button2.Location = new System.Drawing.Point(32, 64); this.button2.Name = "button2"; this.button2.TabIndex = 0; this.button2.Text = "button2"; this.button2.Click += new System.EventHandler(this.button2_Click); // // TestForm1 // this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); this.ClientSize = new System.Drawing.Size(292, 266); this.Controls.Add(this.button1); this.Controls.Add(this.button2); this.Name = "TestForm1"; this.Text = "TestForm1"; this.ResumeLayout(false);
} #endregion
private void button1_Click(object sender, System.EventArgs e) { IntPtr hwnd_win ; IntPtr hwnd_button ;
hwnd_win = FindWindow("WindowsForms10.Window.8.app3","Form1"); hwnd_button = FindWindowEx(hwnd_win ,new IntPtr(0) ,"WindowsForms10.BUTTON.app3","button1");
const int BM_CLICK = 0x00F5; Message msg = Message.Create(hwnd_button ,BM_CLICK ,new IntPtr(0),new IntPtr(0)); PostMessage(msg.HWnd ,msg.Msg ,msg.WParam ,msg.LParam); } private void button2_Click(object sender, System.EventArgs e) { const int WM_CHAR = 0x0102; IntPtr hwnd_win ; IntPtr hwnd_textbox ;
hwnd_win = FindWindow("WindowsForms10.Window.8.app3","Form1"); hwnd_textbox = FindWindowEx(hwnd_win ,new IntPtr(0) ,"WindowsForms10.EDIT.app3","textBox1");
string strtext = "测试aaa"; UnicodeEncoding encode = new UnicodeEncoding(); char[] chars = encode.GetChars(encode.GetBytes(strtext)); Message msg ; foreach (char c in chars ) { msg = Message.Create(hwnd_textbox ,WM_CHAR ,new IntPtr(c),new IntPtr(0)); PostMessage(msg.HWnd ,msg.Msg ,msg.WParam ,msg.LParam); } }
[DllImport("user32.dll")] public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll")] public static extern IntPtr FindWindowEx(IntPtr hwndParent,IntPtr hwndChildAfter,string lpszClass,string lpszWindow);
[DllImport("user32.dll",CharSet=CharSet.Unicode)] public static extern IntPtr PostMessage(IntPtr hwnd,int wMsg,IntPtr wParam,IntPtr lParam); }
|
相关推荐
在本文中,我们将深入探讨如何使用C#编程语言与微信企业号进行交互,实现消息的接收和发送。微信企业号是一种为企业用户提供内部通讯和管理工具的服务,它允许开发者通过API接口进行定制化开发,实现自动化的工作...
【标题】"使用C#开发的MyQQ应用程序" 在编程领域,C#是一种广泛使用的面向对象的编程语言,尤其在Windows应用开发中占有重要地位。本项目“MyQQ”就是一个利用C#语言编写的聊天工具,它展示了如何利用C#的强大功能...
在本文中,我们将深入探讨如何使用C#语言实现微信企业号的消息发送功能,以及相关的技术要点。 首先,"C#最精简的微信企业号发送消息"这个标题暗示我们关注的是一个简单的C#程序,该程序可以向微信企业号发送消息。...
在IT领域,程序间通信(IPC,Inter-Process Communication)是一项关键的技术,它允许不同的进程或应用程序之间交换数据和信息。本示例聚焦于C#中的一个特定IPC方法:`SendMessage`,这是一个Windows API函数,常...
在IT行业中,消息队列(Message Queue,MQ)是一种常用于分布式系统中解耦组件、提高系统可扩展性和...通过理解和掌握消息队列的概念及其在C#中的实现,可以极大地优化你的应用程序架构,提升系统的稳定性和可扩展性。
在C#中开发Windows应用程序时,消息处理是一个关键部分,它涉及到用户界面的响应性和交互性。本资源包“C#开发WINDOWS应用程序时消息的处理.zip”提供了几个关键文件,帮助开发者理解并实现消息处理机制。 首先,...
消息队列允许应用程序将消息放入队列,然后由接收方从队列中取出并处理。这种异步通信方式降低了发送方和接收方之间的依赖性,使得发送方无需等待接收方的响应,提高了系统的整体性能。 在C#中,我们主要使用`...
在IT行业中,进程间通信(IPC,Inter-Process Communication)是一项关键的技术,它允许不同的应用程序或者同一应用程序的不同进程之间交换数据。本实例聚焦于在C#中如何利用`SendMessage`函数进行进程间通信,这...
在C#编程中,多线程消息处理是一个关键的领域,尤其在开发高效、响应迅速的应用程序时。本文将深入探讨“C#多线程消息处理例子”中的核心概念,...理解并掌握这些概念对于编写高性能、响应迅速的C#应用程序至关重要。
在CAN(Controller Area Network)通信协议中,C#作为一种常用的语言,被广泛应用于开发与CAN总线相关的应用程序。本文将详细讲解如何使用C#...掌握这些知识点,你就能创建出能够有效利用CAN总线进行通信的C#应用程序。
在C# Winform应用开发中,`SendMessage`函数是一个非常重要的API调用,它允许我们向其他窗口发送消息。此技术常用于实现跨线程通信、控件操作以及消息拦截等高级功能。`WndProc`消息处理程序是Windows窗体(Winform...
在IT领域,C#是一种广泛使用的编程语言,尤其在开发Windows应用程序、Web应用程序以及游戏等方面。本主题聚焦于使用C#实现发送邮件的功能,这对于许多应用程序来说是一个常见且实用的需求,比如用户注册验证、系统...
本文实例讲述了C#实现在应用程序间发送消息的方法。分享给大家供大家参考,具体如下: 首先建立两个C#应用程序项目。 第一个项目包含一个Windows Form(Form1),在Form1上有一个Button和一个TextBox。 第二个项目包含...
在确保蓝牙设备(例如手机)已经与PC配对的前提下,我们可以创建一个窗体应用程序,包含用于发送和接收文件的功能。这里的关键类是`ObexListener`,它允许我们创建一个监听器来接收来自其他蓝牙设备的文件。同时,...
在C#编程环境中,开发一个控制台应用程序来发送邮件是一个常见的任务,特别是在自动化或系统集成的场景中。本文将深入探讨如何使用C#通过SMTP(Simple Mail Transfer Protocol)服务发送邮件,结合控制台应用程序...
本文将详细探讨如何使用C#编程语言实现基于局域网的消息发送功能,包括对单个IP地址的发送以及对多个IP地址的群发。 首先,要实现局域网内的消息发送,我们需要理解TCP/IP协议族,它是互联网通信的基础。局域网通信...
在控制外部的 Win32 程序时,我们可以使用两种方法:.NET 平台自带的 SendKeys 和 Process 结合的方式和完全利用 Windows API 的消息机制的方式。 使用 SendKeys 和 Process 结合的方式,我们可以使用 SendKeys....
在本文中,我们将深入探讨如何使用C#的Socket编程来实现一个简单的聊天应用程序,其中包含服务器和客户端的交互。Socket编程是网络通信的基础,它允许应用程序通过网络进行数据传输。在C#中,System.Net命名空间下的...
在IT领域,进程间通信(IPC,Inter-Process Communication)是一项...掌握这些知识点对于开发跨语言的多进程应用程序至关重要。通过实践和理解提供的`IPCDemo`示例,开发者可以更好地运用命名管道这一强大的通信工具。
在本文中,我们将深入探讨如何使用C#编程语言开发一个局域网聊天应用程序,特别是侧重于文件发送功能。C#是一种强大的、面向对象的编程语言,由微软公司开发,广泛应用于Windows桌面应用、游戏开发以及服务器端编程...