| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 932 人关注过本帖
标题:顶层表单做软件主界面的exe如何防止软件重复运行
取消只看楼主 加入收藏
laibinhua
Rank: 2
等 级:论坛游民
威 望:1
帖 子:295
专家分:38
注 册:2010-12-23
结帖率:58.02%
收藏
已结贴  问题点数:20 回复次数:3 
顶层表单做软件主界面的exe如何防止软件重复运行
请教:顶层表单做软件主界面的exe如何防止软件重复运行,之前因为不是用顶层表单做主界面可以用下面的方法实现:
*-- 设置软件唯一运行模式
    SET LIBRARY TO mypath+"\ocx\foxtools.fll" ADDITIVE
    LOCAL getwind
    GetWind = RegFn("FindWindow", "CC", "I")
    wclass=0
    winname="『测试软件』"
    apphand=CallFn(GetWind,wclass ,winname)
    IF apphand<>0  &&如果找到窗口,停止运行
       =MESSAGEBOX("软件已在运行中,不能重复运行!"+CHR(13)+CHR(13)+"很有可能你已将程序最小化了!"+CHR(13);
       +"在最下面的状态栏点它下就可以了!",64,"提示信息")
       QUIT
    ENDIF
搜索更多相关主题的帖子: 重复运行 防止 软件 表单 界面 
2021-11-12 13:31
laibinhua
Rank: 2
等 级:论坛游民
威 望:1
帖 子:295
专家分:38
注 册:2010-12-23
收藏
得分:0 
回复 2楼 吹水佬
大佬,用你的代码还是可以重复启动 ( 我的是win10系统
2021-11-12 22:55
laibinhua
Rank: 2
等 级:论坛游民
威 望:1
帖 子:295
专家分:38
注 册:2010-12-23
收藏
得分:0 
回复 5楼 吹水佬
是EXE文件
图片附件: 游客没有浏览图片的权限,请 登录注册
2021-11-13 13:45
laibinhua
Rank: 2
等 级:论坛游民
威 望:1
帖 子:295
专家分:38
注 册:2010-12-23
收藏
得分:0 
回复 7楼 吹水佬
我用了这句 没有出来提示 MESSAGEBOX 直接同时打开两个来了,怪地,我再试试
*-- 设置软件唯一运行模式
DECLARE LONG CreateMutex  IN Kernel32 STRING@, LONG, STRING@
DECLARE LONG GetLastError IN Kernel32
DECLARE LONG CloseHandle  IN Kernel32 LONG

szPrg  = PROGRAM()
hMutex = CreateMutex(NULL, 0, @szPrg)

IF GetLastError() = 183    && ERROR_ALREADY_EXISTS
    MESSAGEBOX(szPrg + " 不能重复运行")
    QUIT
ENDIF

CloseHandle(hMutex)
2021-11-13 15:10
快速回复:顶层表单做软件主界面的exe如何防止软件重复运行
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017510 second(s), 12 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved