而显示在系统托盘,只是显示(常)驻指梁留在内存中的程序显示在屏幕右下角(的唯则运托盘中)。这个可以设置为不显示。
几处要修改:一修改Program.cs:
原来为:
[STAThread]
static void Main()
{
Application.EnableVisualStyles()
Application.SetCompatibleTextRenderingDefault(false)
Application.Run(new Form1())
}
添加命名空间:
using System.Diagnostics
using System.Runtime.InteropServices
然后修改代码为:
public const int WM_PROCESSISRUNNING = 0x0400 + 101
[DllImport("user32")]
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam)
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Process pCurrent = Process.GetCurrentProcess()
Process[] pList = Process.GetProcessesByName(pCurrent.ProcessName)
if (pList.Length <2)
{
Application.EnableVisualStyles()
Application.SetCompatibleTextRenderingDefault(false)
Application.Run(new Form1())
}
else
{
SendMessage(pList[0].MainWindowHandle, WM_PROCESSISRUNNING, 0, 0)
}
}
然后到主窗体里面加入代码:
protected override void WndProc(ref Message m)
{
if (m.Msg == Program.WM_PROCESSISRUNNING)
{
this.WindowState = FormWindowState.Normal
}
base.WndProc(ref m)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)