【PB案例学习笔记】-15怎样限制应用程序运行次数?

2024-06-04 08:12

本文主要是介绍【PB案例学习笔记】-15怎样限制应用程序运行次数?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

写在前面

这是PB案例学习笔记系列文章的第15篇,该系列文章适合具有一定PB基础的读者。

通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。

文章中设计到的源码,小凡都上传到了gitee代码仓库https://gitee.com/xiezhr/pb-project-example.git

gitee代码仓库

需要源代码的小伙伴们可以自行下载查看,后续文章涉及到的案例代码也都会提交到这个仓库【pb-project-example

如果对小伙伴有所帮助,希望能给一个小星星⭐支持一下小凡。

一、小目标

本次案例中,我们实现这么一个需求。应用程序已经在运行的时候,若再次双击应用程序运行程序,

则弹出提示框提示:应用程序已启动,请勿多次启动。

这样的需求在日常开发中也是经常遇到的,其实这个功能实现起来非常简单。

应用程序多次启动弹框提示

二、实现思路

程序运行时,窗口一般是由ApplicationOpen事件打开,如果在Open事件中以系统主窗口的标题Title作为依据,

若有其他与此Title同名应用程序运行,再想启动此程序就可以判断出程序是否在运行,从而实现限制程序运行次数功能了

三、创建程序基本框架

① 新建examplework 工作区

② 新建exampleapp应用

③ 建立w_main 窗口,Title设置为"应用程序运行次数"

由于篇幅原因,以上步骤不详细展开,如果忘记了的小伙伴可以翻一翻之前的文章

④ 简单进行界面布局

我们在w_main窗口上新建3个StaticText,分别命名为st_1st_2st_3。修改3个控件的Text属性如下

控件布局

四、编写代码

双击开发界面左边的System Tree中的exampleapp应用对象

① 在Declare Global External Functions选项卡中添加动态库user32引用

FUNCTION long FindWindowA( ulong Winhandle, string wintitle ) Library "user32" 

②在其Open事件中添加如下代码

ulong l_handle,lu_class
string ls_name
ls_name = "应用程序运行次数"
l_handle = FindWindowA(lu_class,ls_name)
if l_handle > 0 thenMessageBox("提示信息","应用程序" + This.AppName + "已经启动,请勿多次启动!")halt close
elseopen(w_main)
end if

五、运行程序

我们只用添加上述代码即可实现需求功能,是不是很简单。接下来,程序是否达到我们预期效果

① 我们先运行程序,正常出现下面

正常运行程序

② 我们在打开一个PB,在同样的方法运行程序,结果会有下面弹框提示。

达到了应用程序只能运行一次的效果,完结撒花 ★,°:.☆( ̄▽ ̄)/$:.°★

应用程序多次启动弹框提示
本期内容到这儿就要结束了,希望对您有所帮助。★,°:.☆( ̄▽ ̄)/$:.°★
我们下期再见 (●’◡’●) ヾ(•ω•`)o

这篇关于【PB案例学习笔记】-15怎样限制应用程序运行次数?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1029532

相关文章

Spring Boot Actuator应用监控与管理的详细步骤

《SpringBootActuator应用监控与管理的详细步骤》SpringBootActuator是SpringBoot的监控工具,提供健康检查、性能指标、日志管理等核心功能,支持自定义和扩展端... 目录一、 Spring Boot Actuator 概述二、 集成 Spring Boot Actuat

go动态限制并发数量的实现示例

《go动态限制并发数量的实现示例》本文主要介绍了Go并发控制方法,通过带缓冲通道和第三方库实现并发数量限制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录带有缓冲大小的通道使用第三方库其他控制并发的方法因为go从语言层面支持并发,所以面试百分百会问到

PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例

《PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例》词嵌入解决NLP维度灾难,捕捉语义关系,PyTorch的nn.Embedding模块提供灵活实现,支持参数配置、预训练及变长... 目录一、词嵌入(Word Embedding)简介为什么需要词嵌入?二、PyTorch中的nn.Em

Spring Boot3.0新特性全面解析与应用实战

《SpringBoot3.0新特性全面解析与应用实战》SpringBoot3.0作为Spring生态系统的一个重要里程碑,带来了众多令人兴奋的新特性和改进,本文将深入解析SpringBoot3.0的... 目录核心变化概览Java版本要求提升迁移至Jakarta EE重要新特性详解1. Native Ima

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

Redis中Stream详解及应用小结

《Redis中Stream详解及应用小结》RedisStreams是Redis5.0引入的新功能,提供了一种类似于传统消息队列的机制,但具有更高的灵活性和可扩展性,本文给大家介绍Redis中Strea... 目录1. Redis Stream 概述2. Redis Stream 的基本操作2.1. XADD

JSONArray在Java中的应用操作实例

《JSONArray在Java中的应用操作实例》JSONArray是org.json库用于处理JSON数组的类,可将Java对象(Map/List)转换为JSON格式,提供增删改查等操作,适用于前后端... 目录1. jsONArray定义与功能1.1 JSONArray概念阐释1.1.1 什么是JSONA

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

PowerShell中15个提升运维效率关键命令实战指南

《PowerShell中15个提升运维效率关键命令实战指南》作为网络安全专业人员的必备技能,PowerShell在系统管理、日志分析、威胁检测和自动化响应方面展现出强大能力,下面我们就来看看15个提升... 目录一、PowerShell在网络安全中的战略价值二、网络安全关键场景命令实战1. 系统安全基线核查