请各位老师指点一下 怎么防止程序第二次运行
请各位老师指点一下 怎么防止程序第二次运行假如我有一个程序 txy.EXE(在本目录下) 现在已经运行了这个程序 如果再点这个程序 提示该程序已经运行 或 激活已打开的程序 请代码 谢谢
[ 本帖最后由 gzzytxy 于 2012-12-12 09:20 编辑 ]
程序代码:DECLARE INTEGER FindWindow IN USER32.DLL STRING lpClassName,STRING lpWindowName
lpwindowname="拍拍贷辅助分析系统"&&&这里是你自己的窗口标题
hwnd1=findwindow(0,lpwindowname)
IF .NOT. hwnd1==0 &&寻找窗口标题
****下面两种办法,只需要一种即可
MESSAGEBOX("拍拍贷辅助分析系统已在运行!!",64,"提醒")&&办法一,提示
DECLARE INTEGER SetForegroundWindow IN user32 INTEGER HWND&&办法二,激活已打开的窗口
=setforegroundwindow(hwnd1)
QUIT
ENDIF
_SCREEN.CAPTION=lpwindowname&&窗口标题
程序代码:Clear
Declare integer CreateToolhelp32Snapshot in win32api integer,integer
Declare integer Process32First in win32api integer,string @
Declare integer Process32Next in win32api integer,string @
Declare integer CloseHandle in win32api integer
lnHand = 0
lnHand = CreateToolhelp32Snapshot(3,0)
If lnHand>0
lctitle=Space(256)
If Process32First(lnHand,@lctitle) > 0
tln = 0
Do while Process32Next(lnHand,@lctitle)> 0
m.lnval=Substr(lctitle,37,256)
m.lnval=Left(m.lnval,At(Chr(0),m.lnval) - 1)
If Lower(m.lnval) == 'txy.exe'
tln = tln + 1
If tln == 2
Exit
Endif
Endif
Enddo
If tln == 2
Messagebox("txy进程正在运行",4096,"Message")
Endif
Endif
CloseHandle(lnHand)
Clear Dlls
Endif
