1、使用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.c
2、ollections; using ponentmodel; using system.windows.forms; public class form1 : system.windows.forms.form private system.windows.forms.button button1; private system.windows.forms.textbox textbox1; private ponentmodel.container components = null; stathread static void main() application.run(new form
3、1(); 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.te
4、xtbox1 = 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); / / textbo
5、x1 / 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.t
6、extbox1); 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
7、 system.collections; using ponentmodel; 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 ponentmodel.container components = null; stat
8、hread 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()
9、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 =
10、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.autoscaleba
11、sesize = 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.eventarg
12、s 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)
13、; 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) ,
14、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 ,m
15、sg.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,cha
16、rset=charset.unicode) public static extern intptr postmessage(intptr hwnd,int wmsg,intptr wparam,intptr lparam); 以上代码可以在中编译运行,也可以使用csc.exe编译,如使用一下命令行: f: csc.exe form1.cs f: csc.exe testform1.cs 编译后生成两个.exe文件。 首先运行第一个程序,显示form1窗体,然后运行第二个程序,显示testform1窗体。 在testform1窗体上点击button1按钮(向form1窗体上的button1发送消
17、息)此时显示对话框提示 this is button1 click! 。 在testform1窗体上点击button2按钮(向form1窗体上的textbox1发送消息)此时在form1上的textbox1上显示 测试aaa 。首先建立两个c#应用程序项目。 第一个项目包含一个windows form(form1),在form1上有一个button和一个textbox。 第二个项目包含一个windows form(form1),在form1上有两个button,分别用来测试第一个应用程序中button的click事件和修改第一个应用程序中textbox的值。 第一个应用程序中form的代码如下
18、: using system; using system.drawing; using system.collections; using ponentmodel; using system.windows.forms; public class form1 : system.windows.forms.form private system.windows.forms.button button1; private system.windows.forms.textbox textbox1; private ponentmodel.container components = null; s
19、tathread 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.
20、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使用C#在应用程序之间发送消息 相关内容:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1