在程序开启时,判断此程序在本机是否已经启动.如果没有启动,则正常启动;如果已经启动,则终止新开启的进程,且将已经开启的窗体显示在桌面的最上面.
问题:在最小化时且在任务栏时,用
[DllImport("user32.dll ")]
public static extern IntPtr FindWindow(string sClsName, string sTitle);//找到已经存在的窗体(sClsName表示“类型”,可以给“Null”,sTitle表示“窗体的标题”) [DllImport("User32.dll")]
private static extern bool ShowWindowAsync(IntPtr hWnd, int cmdShow); [DllImport("User32.dll")]
private static extern bool SetForegroundWindow(IntPtr hWnd); public void HandleRunningInstance(Process instance)
{
//设置真实例程为foreground window
SetForegroundWindow(instance.MainWindowHandle);
//确保窗口没有被最小化或最大化
ShowWindowAsync(instance.MainWindowHandle, 1); }这种方法可以,而如果不在任务栏显示,只是以托盘显示,该如何实现让窗体显示在桌面最上面?(此程序是WinForm)
问题:在最小化时且在任务栏时,用
[DllImport("user32.dll ")]
public static extern IntPtr FindWindow(string sClsName, string sTitle);//找到已经存在的窗体(sClsName表示“类型”,可以给“Null”,sTitle表示“窗体的标题”) [DllImport("User32.dll")]
private static extern bool ShowWindowAsync(IntPtr hWnd, int cmdShow); [DllImport("User32.dll")]
private static extern bool SetForegroundWindow(IntPtr hWnd); public void HandleRunningInstance(Process instance)
{
//设置真实例程为foreground window
SetForegroundWindow(instance.MainWindowHandle);
//确保窗口没有被最小化或最大化
ShowWindowAsync(instance.MainWindowHandle, 1); }这种方法可以,而如果不在任务栏显示,只是以托盘显示,该如何实现让窗体显示在桌面最上面?(此程序是WinForm)
然后再方法里if(form==null||form.isDisposed){
form=new Form;
form.show()
}
else(
messagebox.show("已经打开");form.windowstate=formwindowstate.normal;
)
有问题加Q:348680429
http://www.cnblogs.com/Charles2008/archive/2010/03/15/1686450.html