我有一个winform应用程序。用于阻止创建多个实例的Mutex类。
static class Program
{
public static string IDFromAnotherApp = "default";
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
if (args.Length > 0)
IDFromAnotherApp = args[0];
bool successAquisition;
Mutex programMutex = new Mutex(true,
AppDomain.CurrentDomain.SetupInformation.ApplicationName,
out successAquisition);
if (successAquisition)
{
Application.Run(new Form1());
programMutex.ReleaseMutex();
GC.KeepAlive(programMutex);
}
else
{
IDFromAnotherApp = "another";
MessageBox.Show("already open");
}
}
}
Form1代码
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
DisplayId();
}
public void DisplayId()
{
label1.Text = Program.IDFromAnotherApp;
}
}
现在,当用户点击带有参数的APP时,Form1 label1控件将显示该值,但如果其他用户再次点击APP,弹出窗口将显示&#34;已打开&#34;
我想做得更好,而不是弹出窗口,当另一个用户点击带有参数的APP时,是否已经打开Form1更新其label1的文本?甚至可能吗?
答案 0 :(得分:0)
您可以使用数字技术中的任何一种
我会建议使用NamedPipes或可能是Windows消息
至于如何做到这一点,互联网上有很多例子,你可以很好地进行研究。如果您对任何特定技术有疑问,欢迎您就您遇到的问题的具体细节提出另一个问题