首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

如何让程序不能运行多次并且通知已运行的程序

2012-01-05 
怎么让程序不能运行多次并且通知已运行的程序?我的程序运行后,最小化到系统栏。我想再次运行这个程序的时候

怎么让程序不能运行多次并且通知已运行的程序?
我的程序运行后,最小化到系统栏。我想再次运行这个程序的时候,让已经运行的恢复窗口并在最前面显示。
是否应该添加一个监听器之类的来实现?

[解决办法]
VB.NET 2003,在Sub main中添加如下代码

Try
If (UBound(Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName)) > 0) Then
MessageBox.Show( "程序已经启动,请检查...... ")
Exit Sub
End If
Catch ex As Exception
MessageBox.Show(Err.Description, " ", MessageBoxButtons.OK)
End Try

[解决办法]

Main代码里面写

bool ret;
Mutex mutex = new Mutex(true, Application.ProductName, out ret);

if (ret)
{
Application.Run(new Form1());
}
else
{
//FindWindow()
//ShowWindow() 用这两个api就可显示
}
[解决办法]
vb.net2005的话项目-> 属性-> 生成单个实例的应用程序.
或用如下的类就能实现你要的结果
http://www.codeproject.com/csharp/cssingprocess.asp

热点排行