以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]如何判断项目已经打开  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=175925)

--  作者:2425004926
--  发布时间:2022/3/24 10:27:00
--  [求助]如何判断项目已经打开
如何判断项目已经打开,是在

BeforeOpenProject事件里吗,是否是用FileIsOpened这个函数,下面红色里的代码应该怎么写,请老师指点


If FileIsOpened("ProjectPath & 测试项目已经打开.foxdb")= True Then
    MessageBox.Show("项目已经打开")
End If


--  作者:有点蓝
--  发布时间:2022/3/24 11:04:00
--  
没有办法判断Foxtable项目是否已经打开。
如果要控制项目不能重复打开,看这个:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=96880

--  作者:2425004926
--  发布时间:2022/3/24 11:20:00
--  
我用以下代码,可以实现,但是弹出窗口总是最小化在状态栏, 怎么能让它显示在桌面
static mu As System.Threading.Mutex
Dim sucess As Boolean = False
mu = new System.Threading.Mutex(True, "aaabbbccc", sucess)
If not sucess Then
    e.Cancel = True
    e.hidesplashform = True     \'关闭Foxtable的启动封面
    MessageBox.Show("项目已经在运行,请勿重复打开!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If
--  作者:有点蓝
--  发布时间:2022/3/24 11:22:00
--  
这个没有办法控制
--  作者:2425004926
--  发布时间:2022/3/24 11:53:00
--  
我让项目先打开,再退出项目,基本上实现不重复打开的功能

AfterOpenProject事件
static mu As System.Threading.Mutex
Dim sucess As Boolean = False
mu = new System.Threading.Mutex(True, "aaabbbccc", sucess)
If not sucess Then
    MessageBox.Show("项目已经在运行,即将关闭重复打开的项目!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Syscmd.Project.Exit()
    Return \'这个要加上,因为既然要退出,就不应该再执行后面的初始化代码了,否则会出错
End If