在VB中如何实现单实例程序,即:运行这个程序后不能再次运行这个程序

suntao222 2005-07-18 05:32:51
我知道在VC里用CreateMutex(NULL,FALSE,"vod");然后if(GetLastError()==ERROR_ALREADY_EXISTS)可以办到,但在VB里面开始是FORM_LOAD,如果我在FORM_LOAD中直接这样判断然后UNLOAD ME,程序界面虽然不会出现,但是本身的线程还是存在的,CTR+ALT+DEL可以看到这个线程仍在运行中,这可能是由于VB的窗口虽然没有运行,但是程序主线程已经开始了,并且必须在FORM_LOAD完毕之后才可以关闭,虽然在FORM_LOAD中UNLOAD了,但是主线程却并没有关闭造成的,不知道我的理解对不对。那么现在如何才能创建一个单实例程序呢,请高手赐教!
...全文
166 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jxgzay 2005-07-18
  • 打赏
  • 举报
回复
凑热闹,吃点剩菜。

If App.PrevInstance = True Then
MsgBox "本程序已经在运行!"
end
End If
suntao222 2005-07-18
  • 打赏
  • 举报
回复
后面的两位来迟一步不好意思,不过还是要谢谢:)
optop 2005-07-18
  • 打赏
  • 举报
回复
App.PrevInstance
lc_mtt 2005-07-18
  • 打赏
  • 举报
回复
App.PrevInstance = True 如果需要激活已经运行的程序,可能要用到DDE
饮水需思源 2005-07-18
  • 打赏
  • 举报
回复
private form1_load()
If App.PrevInstance = True Then
MsgBox "您不能同时运行多个程序!"
end
End If
end sub

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧