以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何防止程序重复打开?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=9545)

--  作者:qhczy
--  发布时间:2011/4/21 16:35:00
--  如何防止程序重复打开?
检测进程有没有名,有就弹出提示。
--  作者:狐狸爸爸
--  发布时间:2011/4/21 16:51:00
--  
foxtable没有提供此功能
--  作者:qhczy
--  发布时间:2011/4/21 17:11:00
--  
能增加这个功能吗?
--  作者:狐狸爸爸
--  发布时间:2011/4/21 17:18:00
--  

你可以自己写一个,禁止打开同一个项目,在AfterOpenProject事件中在项目文件目录下生成一个文件,在BeforeCloseProject事件中删除这个文件。

在BeforeOpenProject检测这个文件,如果存在这个文件,说明有人打开了此项目,那么就禁止重复打开。


--  作者:lxl
--  发布时间:2011/4/21 20:07:00
--  

写文件有风险。非法关闭,或者任务管理器里面关闭,文件没删除的话,就再打不开项目了

 

可以用下面代码实现

全局代码:

Public mu As System.Threading.Mutex

 

BeforeOpenProject事件:

Dim sucess As Boolean = False
mu = new System.Threading.Mutex(True, "dsdfhdfghf", sucess)
If not sucess Then
    MessageBox.Show("只能打开一次!")
    e.Cancel = True
End If

[此贴子已经被作者于2011-4-21 20:07:40编辑过]

--  作者:blackzhu
--  发布时间:2011/4/21 20:31:00
--  
代码明天收藏下来
--  作者:古奇
--  发布时间:2011/4/21 20:39:00
--  
以下是引用lxl在2011-4-21 20:07:00的发言:

写文件有风险。非法关闭,或者任务管理器里面关闭,文件没删除的话,就再打不开项目了

 

可以用下面代码实现

全局代码:

Public mu As System.Threading.Mutex

 

BeforeOpenProject事件:

Dim sucess As Boolean = False
mu = new System.Threading.Mutex(True, "dsdfhdfghf", sucess)
If not sucess Then
    MessageBox.Show("只能打开一次!")
    e.Cancel = True
End If

[此贴子已经被作者于2011-4-21 20:07:40编辑过]

 

顶啊   代码有效 图片点击可在新窗口打开查看


--  作者:狐狸爸爸
--  发布时间:2011/4/22 7:12:00
--  
写lxl版主,学习了,加精。
--  作者:kylin
--  发布时间:2011/4/22 11:33:00
--  
以下是引用lxl在2011-4-21 20:07:00的发言:

写文件有风险。非法关闭,或者任务管理器里面关闭,文件没删除的话,就再打不开项目了

 

可以用下面代码实现

全局代码:

Public mu As System.Threading.Mutex

 

BeforeOpenProject事件:

Dim sucess As Boolean = False
mu = new System.Threading.Mutex(True, "dsdfhdfghf", sucess)
If not sucess Then
    MessageBox.Show("只能打开一次!")
    e.Cancel = True
End If

[此贴子已经被作者于2011-4-21 20:07:40编辑过]

收藏,谢谢!


--  作者:foxor
--  发布时间:2011/4/22 17:06:00
--  

很有用,收藏了!图片点击可在新窗口打开查看