C# 编辑器
本人用 C# 做个文本编辑器,想只允许启动一个实例,已经编辑器启动后,不在启动第二个实例,二是直接调用第一个实例,然后自己打开。
我调用 SendMessage WndProc 两个系统函数,我发现第二次启动,接受不到消息。
下面是部分代码,请大侠们指正。
Process instance = RunningInstance();
if (instance == null)
{
//如果没有其它例程,就新建一个窗体
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
edit = new EditTest(startCmd);
Application.Run(edit );
}
else
{
MessageBox.Show( "程序正在运行,您无需在启动! ", "提示 ", MessageBoxButtons.OK, MessageBoxIcon.Information);
HandleRunningInstance(instance);
}
protected override void WndProc(ref Message m)
{
if (m.Msg == Const.WM_SHOW_TEXT)
{
MessageBox.Show( "Show Text ");
}
else
base.WndProc(ref m);
}
public static void HandleRunningInstance(Process instance)
{
SendMessage(instance.MainWindowHandle, Const.WM_SHOW_TEXT, 0, 0);
}<