欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

C#實(shí)現(xiàn)在應(yīng)用程序間發(fā)送消息的方法示例

本文實(shí)例講述了C#實(shí)現(xiàn)在應(yīng)用程序間發(fā)送消息的方法。分享給大家供大家參考,具體如下:

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、微信小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了海寧免費(fèi)建站歡迎大家使用!

首先建立兩個(gè)C#應(yīng)用程序項(xiàng)目。

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

第二個(gè)項(xiàng)目包含一個(gè)Windows Form(Form1),在Form1上有兩個(gè)Button,分別用來(lái)測(cè)試第一個(gè)應(yīng)用程序中Button的Click事件和修改第一個(gè)應(yīng)用程序中TextBox的值。

第一個(gè)應(yīng)用程序中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 窗體設(shè)計(jì)器生成的代碼
 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!");
 }
}

第二個(gè)應(yīng)用程序中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 窗體設(shè)計(jì)器生成的代碼
 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 = "測(cè)試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中編譯運(yùn)行,也可以使用csc.exe編譯,如使用一下命令行:

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

編譯后生成兩個(gè).exe文件。

首先運(yùn)行第一個(gè)程序,顯示Form1窗體,然后運(yùn)行第二個(gè)程序,顯示TestForm1窗體。

在TestForm1窗體上點(diǎn)擊button1按鈕(向Form1窗體上的button1發(fā)送消息)此時(shí)顯示對(duì)話框提示“This is button1 click!”。

在TestForm1窗體上點(diǎn)擊button2按鈕(向Form1窗體上的textBox1發(fā)送消息)此時(shí)在Form1上的textBox1上顯示“測(cè)試aaa”。

更多關(guān)于C#相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《WinForm控件用法總結(jié)》、《C#窗體操作技巧匯總》、《C#數(shù)據(jù)結(jié)構(gòu)與算法教程》、《C#常見(jiàn)控件用法教程》、《C#面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》及《C#程序設(shè)計(jì)之線程使用技巧總結(jié)》

希望本文所述對(duì)大家C#程序設(shè)計(jì)有所幫助。

名稱欄目:C#實(shí)現(xiàn)在應(yīng)用程序間發(fā)送消息的方法示例
轉(zhuǎn)載來(lái)于:http://chinadenli.net/article2/joihoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、服務(wù)器托管網(wǎng)站策劃、ChatGPT、做網(wǎng)站、App設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)
日韩一区二区三区在线日| 最新国产欧美精品91| 手机在线不卡国产视频| 四十女人口红哪个色好看| 日韩一区二区三区观看| 男女午夜福利院在线观看| 欧美黑人暴力猛交精品| 亚洲欧美国产精品一区二区| 亚洲三级视频在线观看免费| 欧美综合色婷婷欧美激情| 人妻中文一区二区三区| 日本在线视频播放91| 中文字幕佐山爱一区二区免费| 黄色片一区二区在线观看| 亚洲熟妇av一区二区三区色堂| 国产欧美日韩精品成人专区| 中文字幕久久精品亚洲乱码| 亚洲综合香蕉在线视频| 大香蕉大香蕉手机在线视频| 久久热在线视频免费观看| 国产传媒免费观看视频| 东京热加勒比一区二区| 欧美一区二区三区99| 97人妻精品一区二区三区免| 国产一区欧美午夜福利| 99日韩在线视频精品免费| 精品精品国产自在久久高清| 大香伊蕉欧美一区二区三区| 国产又色又爽又黄又大| 日韩欧美国产精品自拍| 精品日韩av一区二区三区| 中国美女草逼一级黄片视频| 国产午夜精品美女露脸视频| 亚洲日本久久国产精品久久| 久久精品国产第一区二区三区| 亚洲综合色婷婷七月丁香| 色婷婷视频国产一区视频| 国产精品免费不卡视频| 风韵人妻丰满熟妇老熟女av| 国产真人无遮挡免费视频一区| 国内真实露脸偷拍视频|