久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

C#實現在應用程序間發送消息的方法示例

這篇文章主要介紹了C#實現在應用程序間發送消息的方法,結合具體實例形式分析了C#實現項目之間信息發送、接收等交互操作相關技巧,需要的朋友可以參考下

本文實例講述了C#實現在應用程序間發送消息的方法。分享給大家供大家參考,具體如下:

首先建立兩個C#應用程序項目。

第一個項目包含一個Windows Form(Form1),在Form1上有一個Button和一個TextBox。

第二個項目包含一個Windows Form(Form1),在Form1上有兩個Button,分別用來測試第一個應用程序中Button的Click事件和修改第一個應用程序中TextBox的值。

第一個應用程序中Form的代碼如下:


using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
public class Form1 : System.Windows.Forms.Form {
 private System.Windows.Forms.Button button1;
 private System.Windows.Forms.TextBox textBox1;
 private System.ComponentModel.Container components = null;
 [STAThread]
 static void Main() {
 Application.Run(new Form1());
 }
 public Form1()
 {
 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.textBox1 = new System.Windows.Forms.TextBox();
 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);
 //
 // textBox1
 //
 this.textBox1.Location = new System.Drawing.Point(32, 64);
 this.textBox1.Name = "textBox1";
 this.textBox1.TabIndex = 1;
 this.textBox1.Text = "textBox1";
 //
 // Form1
 //
 this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
 this.ClientSize = new System.Drawing.Size(292, 266);
 this.Controls.Add(this.textBox1);
 this.Controls.Add(this.button1);
 this.Name = "Form1";
 this.Text = "Form1";
 this.ResumeLayout(false);
 }
 #endregion
 private void button1_Click(object sender, System.EventArgs e) {
 MessageBox.Show("This is button1 click!");
 }
}

第二個應用程序中Form的代碼如下:


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);
}

以上代碼可以在VS.NET中編譯運行,也可以使用csc.exe編譯,如使用一下命令行:


F:>csc.exe Form1.cs
F:>csc.exe TestForm1.cs

編譯后生成兩個.exe文件。

首先運行第一個程序,顯示Form1窗體,然后運行第二個程序,顯示TestForm1窗體。

在TestForm1窗體上點擊button1按鈕(向Form1窗體上的button1發送消息)此時顯示對話框提示“This is button1 click!”。

在TestForm1窗體上點擊button2按鈕(向Form1窗體上的textBox1發送消息)此時在Form1上的textBox1上顯示“測試aaa”。

更多關于C#相關內容感興趣的讀者可查看本站專題:《WinForm控件用法總結》、《C#窗體操作技巧匯總》、《C#數據結構與算法教程》、《C#常見控件用法教程》、《C#面向對象程序設計入門教程》及《C#程序設計之線程使用技巧總結》

希望本文所述對大家C#程序設計有所幫助。

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

這篇文章主要為大家詳細介紹了C# SendMail發送郵件功能實現,具有一定的參考價值,感興趣的小伙伴們可以參考一下
這篇文章主要介紹了C#實現的SQL備份與還原功能,結合具體實例形式分析了C#操作數據庫實現SQL備份與還原相關的控件、SQL連接、文件等操作技巧,需要的朋友可以參考下
這篇文章主要介紹了C#使用checkedListBox1控件鏈接數據庫的方法,結合具體實例形式分析了數據庫的創建及checkedListBox1控件連接數據庫的相關操作技巧,需要的朋友可以參考下
這篇文章主要介紹了C#實現的sqlserver操作類,結合具體實例形式分析了C#針對sqlserver數據庫進行連接、查詢、更新、關閉等相關操作技巧,需要的朋友可以參考下
這篇文章主要為大家詳細介紹了C#多線程數組模擬socket的相關代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
這篇文章主要為大家詳細介紹了C#根據http和ftp圖片地址獲取對應圖片,具有一定的參考價值,感興趣的小伙伴們可以參考一下
主站蜘蛛池模板: 欧美午夜一区二区三区免费大片 | av一二三区 | 一级高清视频 | 色婷婷av一区二区三区软件 | 成人在线免费电影 | 狠狠躁天天躁夜夜躁婷婷老牛影视 | 99精品久久久国产一区二区三 | 天天操天天干天天爽 | 伊人精品久久久久77777 | 激情一区二区三区 | 日韩欧美三级电影 | 99re6在线视频精品免费 | 国产一区999| 亚洲精品9999 | 国产黄色网址在线观看 | 91精品国产综合久久福利软件 | 精品国产一区二区三区免费 | 亚洲狠狠| 波多野结衣中文字幕一区二区三区 | 欧美精品一区在线 | 久久精品国产亚洲一区二区 | 一级片在线免费看 | 一区二区三区免费 | 日日夜夜av | 操操操av | 最新国产在线 | 成人国产精品久久久 | 日本三级全黄三级a | 国产精品久久久久一区二区三区 | 欧美jizzhd精品欧美巨大免费 | 日韩精品一区二区三区视频播放 | 中文字幕一区二区三区不卡 | 91精品在线播放 | 色屁屁在线观看 | 免费的黄色片子 | 在线看av的网址 | 亚洲精品久久久久久国产精华液 | 三级av免费 | 一区二区三区欧美在线 | 国产农村妇女精品一区 | 精品国产免费一区二区三区五区 |