判断表单是否运行

 

 
表单运行时会产生一个同名的变量,判断这个变量是否存在就可以知道表单是否已经运行
PUBLIC handle

DECLARE INTEGER CreateFileMapping IN kernel32.DLL INTEGER hFile, ; 
INTEGER lpFileMappingAttributes,integer flProtect, ; 
INTEGER dwMaximumSizeHigh, INTEGER dwMaximumSizeLow, ; 
STRING lpName 
DECLARE INTEGER GetLastError IN kernel32.DLL 
DECLARE INTEGER CloseHandle IN kernel32.DLL INTEGER hObject 
szname="myonly" 
handle = createfilemapping(0xFFFFFFFF,0,4,0,128,szname) 
IF handle = 0 
WAIT WINDOW "CreateFileMapping 失败 - LastError: " ; 
+ LTRIM(STR(getlasterror())) 
RETURN 
ENDIF 
if handle=0 
messagebox("创建内存映谢文件失败!",0,"错误") 
return .f. 
else 
if GetLastError()=183
=messagebox("别点了,软件已经运行啦!",32,"嘿嘿-别点了*(^_^)*") 
CLOSE all 
Clear dlls 
Clear events 
QUIT 
endif 
endif
---------------------------------------------------

 

 
if wexist(表单.name值)
  =Messagebox(表单.name值+'已经运行')
else 
  =Messagebox(表单.name值+'没有运行')
endif
 
--------------------------------------------------
 

 

 
如果是顶层表单可以这么做:

cCaption="顶层表单的caption"
DECLARE INTEGER FindWindow IN WIN32API STRING cClass, STRING cCaption
IF FindWindow(0,cCaption)#0
_SCREEN.CAPTION=cCaption
=MESSAGEBOX("此程序已经运行,请查看任务栏中的相关信息......!",48,"启动程序")
RETURN.f.
QUIT
ENDIF

---------------------------------------------------
VB code
           
           
表单的Load事件: IF TYPE( ' 表单文件名')='O' RETURN .F. ELSE PUBLIC 表单文件名 ENDIF 表单的Unload事件: Release 表单文件名
 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值