请各位老师指点一下 怎么防止程序第二次运行
请各位老师指点一下 怎么防止程序第二次运行假如我有一个程序 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