c# 两个exe如何传递参数?
我有两个exe都在运行中,分别为a.exe和b.exe
当点击a.exe的一个按钮时,需要给b.exe传递一个参数
怎么传呢?穿过去b.exe中怎么接收呢?
------解决方案--------------------不如把a做成dll吧..
------解决方案--------------------如果用a.exe去启动b.exe的话,可以使用
  System.Diagnostics.Process.Start(b.exe","这里是要传过去的参数");
------解决方案--------------------SendMessagae
WM_COPYDATA
------解决方案--------------------这个就要看楼主的具体需求了,我提供一个思路吧
1。如果是在a.exe中的某按钮点击时启动b.exe,则可以通过process进程类的argumens直接传递;
2。若是两个exe都在运行过程中,则楼主所说的情况就是常见的两个进程之间互相通信的情况了。对于这个我常常是用windows api来实现,就是在a.exe中调用findWindow与sendMessage两个api函数来发送相应的消息,而b.exe重写窗口的消息处理方法来对消息进行判断处理
------解决方案-------------------- 第一个项目包含一个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();