问高手!防止多次启动的问题:previnstance探测到这个程序已经启动的时候,如何自动地show出已经运行的这个previnstance的form?
我暂时用的笨办法是下面的代码(在form_activate()中):
'防止程序同时多个启动
If App.PrevInstance = True Then
Unload Me
MsgBox "程序已经启动,请单击右下脚图标!", vbInformation + vbOKOnly, "消息"
Exit Sub
End If
请教高手:如何在unload me之后把这个App.preinstance 的窗体show出来?
高手都来顶
问题点数:0、回复次数:11Top
1 楼baoaya(点头)(大风起兮云飞扬)回复于 2004-12-01 17:55:51 得分 0
If App.PrevInstance = True Then
Dim strTitle As String
strTitle = Me.Caption
Me.Caption = ""
AppActivate strTitle '激活窗口
MsgBox "程序已经启动,请单击右下脚图标!", vbInformation + vbOKOnly, "消息"
End
End If
Top
2 楼happy_sea(开心海(数据读取中,请稍候......))回复于 2004-12-01 18:25:25 得分 0
帮你顶一下!Top
3 楼Lionking1027(自由之子)回复于 2004-12-01 19:40:44 得分 0
关注,我也想知道Top
4 楼fishzone(阿愚@脸上有疤)回复于 2004-12-01 19:49:03 得分 0
在系统中遍历所有的窗体,找到你的程序(比如你的窗体标题总有自己的特殊的关键字吧)。然后向这个窗体的句饼 SendMessage 让它在任务栏中闪烁或者弹出来。
Top
5 楼nanshenvip()回复于 2004-12-01 22:14:45 得分 0
根本不用遍历,那要费很长时间的,其实二楼baoaya(点头)的方法最简单也实用Top
6 楼linzish(风发少年)回复于 2004-12-02 18:07:18 得分 0
baoaya(点头) 大哥,我想的就是去掉
MsgBox "程序已经启动,请单击右下脚图标!", vbInformation + vbOKOnly, "消息"
而直接让原来的窗口show出来(新调用的窗口不要出现)!如何做到呢?Top
7 楼Plutoxkxu(★深渊★)回复于 2004-12-02 18:16:05 得分 0
不会再顶,学习Top
8 楼baoaya(点头)(大风起兮云飞扬)回复于 2004-12-02 18:17:51 得分 0
你先自定义一个消息 然后把窗口子类化 ,就是 使用GWL_WNDPROC参数调用 SetWindowLong,譬如
call SetWindowLong(hWnd, GWL_WNDPROC, AddressOf NewWindowProc)
然后在函数 NewWindowProc 里接收窗口消息,如果收到的消息是 你自己定义的那个消息的话 就
MsgBox "程序已经启动,请单击右下脚图标!", vbInformation + vbOKOnly, "消息"
Top
9 楼baoaya(点头)(大风起兮云飞扬)回复于 2004-12-02 18:19:16 得分 0
然后 PrevInstance = true 的话 就发这个自定义的消息给先前已经打开的窗口Top
10 楼bu_wen(不文)回复于 2004-12-06 18:17:12 得分 0
使用DDE 就可以轻松解决Top
11 楼aijie099(罗漫年华)回复于 2004-12-06 21:37:38 得分 0
我做了个控件,在
http://redxia.netme.cn
可以下载,看看,能不能用上。Top




