VB6如何让程序只运行一个程序实例

2024-10-31 10:17:14
有4个网友回答
网友(1):

最简单的代码
在load事件写
'声明
private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Sub Form_Load()
if FindWindow(null,'你的程序标题')<>0 then
msgbox"程序已经运行了,请勿重复运行"
end if
end sub

你可以编译后试下

网友(2):

这是c#的示例:你看一下VB里面好没这个类和方法:
static void Main(string[] args)

{

bool flag=false;

System.Threading.Mutex mutex=new System.Threading.Mutex(true,"Test",out flag);

//第一个参数:true--给调用线程赋予互斥体的初始所属权

//第一个参数:互斥体的名称

//第三个参数:返回值,如果调用线程已被授予互斥体的初始所属权,则返回true

if(flag)

{

Console.Write("Running");

}

else

{

Console.Write("Another is Running");

System.Threading.Thread.Sleep(5000);//线程挂起5秒钟

Environment.Exit(1);//退出程序

}

Console.ReadLine();

或者也可以添加C#里面这引用来试试(我也是想c#可以调用VB的方法,反过来应该也可以吧)

网友(3):

可以找窗口的 请查阅
FindWindow API函数
原理发现同类窗口就关闭程序

网友(4):

这原理只有找进程了!很简单!