递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 14284|回复: 17
打印 上一主题 下一主题

[视窗] 火山PC调用易语言的能力实现禁止软件重复运行

[复制链接]

359

主题

6675

帖子

1万

积分

贵宾

Rank: 9Rank: 9Rank: 9

积分
17012
跳转到指定楼层
楼主
发表于 2021-5-18 09:57:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本源码转载自利快云https://www.lkuaiy.com/

1、首先利用建立一个易语言dll动态链接库项目。





2、调用以下两个系统api,大概就是,前一个方法用于判断标记是否存在,后一个方法用于设置标记。
    这样通过这个标记信息的判断,可以确定当前软件是否运行。




.版本 2

.DLL命令 OpenEventA, 整数型, "kernel32.dll", "OpenEventA", 公开, 打开事件同步对象,判断标记是否存在
    .参数 dwDesiredAccess, 整数型
    .参数 bInheritHandle, 逻辑型
    .参数 lpName, 文本型

.DLL命令 CreateEvent, 整数型, "Kernel32.dll", "CreateEventA", 公开, 创建事件同步对象,创建一个标记
    .参数 lpEventAttributes, 整数型
    .参数 bManualReset, 逻辑型
    .参数 bInitialState, 逻辑型
    .参数 lpName, 文本型





3、调用以上两个api函数,简单的封装一下,实现一个判断当前软件是否运行的子程序。
    注意:这里的标记文本要尽量的复杂,如果软件已经运行返回真,否则返回假。



.版本 2

.子程序 chongfu, 逻辑型, 公开, 禁止当前程序多开运行
.局部变量 局_句柄, 整数型
.局部变量 hEvent, 整数型

hEvent = OpenEventA (2031619, 假, “abcdefghc”)  ' 判断标记是否存在
.如果真 (hEvent ≠ 0)
    返回 (真)
.如果真结束
CreateEvent (0, 假, 假, “abcdefghc”)  ' 写一个标记
返回 (假)






4、最后进行静态编译。





5、建立视窗项目,在启动类利用“@视窗.附属文件”属性选择dll,用于输出dll到程序目录中
6、建立“禁止重复运行”方法,引入dll,并填写输出名返回值等信息,务必和易语言中的保持一致。
7、在启动方法中,判断“禁止重复运行”是否返回真,如果返回真就弹出提示,否则就创建主窗口。






8、最后运行效果,可以看到软件打开一次后就无法打开第二次。会提示禁止运行。










例程下载:


游客,如果您要查看本帖隐藏内容请回复







火山安卓+PC多部课程尽在:www.lkuaiy.com
回复

使用道具 举报

9

主题

371

帖子

3422

积分

贵宾

火山小白

Rank: 9Rank: 9Rank: 9

积分
3422
沙发
发表于 2021-5-18 16:47:03 | 只看该作者
这个厉害了!学习……
WX搜索:大强小屋【ID:daqiangstudio】
向火山进发!
回复

使用道具 举报

2

主题

27

帖子

128

积分

注册会员

Rank: 2

积分
128
板凳
发表于 2021-5-18 21:18:51 | 只看该作者
我有点蒙,有了api,为啥不直接调用
回复

使用道具 举报

50

主题

567

帖子

2473

积分

金牌会员

Rank: 6Rank: 6

积分
2473
地板
发表于 2021-5-18 21:50:53 | 只看该作者
江渝潇潇 发表于 2021-5-18 21:18
我有点蒙,有了api,为啥不直接调用

只是告诉大家,火山可以调用易写的DLL!!
回复

使用道具 举报

55

主题

297

帖子

3485

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3485
5#
发表于 2021-5-19 09:44:26 | 只看该作者
借楼主代码封装个火山版本


回复

使用道具 举报

0

主题

196

帖子

850

积分

高级会员

Rank: 4

积分
850
6#
发表于 2021-5-19 10:23:47 | 只看该作者
这个厉害了!学习……
回复

使用道具 举报

149

主题

941

帖子

3974

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3974
QQ
7#
发表于 2021-5-19 12:43:53 | 只看该作者
启动类,也加上,附属文件,原因是啥啊??
全国江浙沪音视频通讯、视频会议互动
回复

使用道具 举报

21

主题

110

帖子

418

积分

中级会员

Rank: 3Rank: 3

积分
418
8#
发表于 2021-5-19 13:29:23 | 只看该作者
借楼主代码封装个火山版本
回复

使用道具 举报

5

主题

216

帖子

2208

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2208
9#
发表于 2021-5-20 08:20:02 | 只看该作者
感谢分享,至今没有勇气 换火山PC写软件……
回复

使用道具 举报

13

主题

134

帖子

1228

积分

金牌会员

Rank: 6Rank: 6

积分
1228
10#
发表于 2021-5-20 21:53:12 | 只看该作者
支持64位系统吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-23 10:07 , Processed in 0.091466 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表