【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 then
	MessageBox("提示信息","应用程序" + This.AppName + "已经启动,请勿多次启动!")
	halt close
else
	open(w_main)
end if

五、运行程序

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

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

正常运行程序

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python词云生成库-wordcloud

内容目录 一、模块介绍二、WordCloud常用的方法1. generate(self, text)2. generate_from_frequencies(frequencies)3. fit_words(frequencies)4. generate_from_text(text) 三、进阶技巧1. 设置蒙版2. 设置过滤词 WordCloud 是一个用于生成词云的 Python 库,它可以…

【算法速查】万字图解带你快速入门八大排序(下)

君兮_的个人主页 即使走的再远,也勿忘启程时的初心 C/C 游戏开发 Hello,米娜桑们,这里是君兮_,首先在这里祝大家中秋国庆双节同乐!!抓住假期的小尾巴,今天来把算法速查的八大排序的后续写完,当…

用 OpenCV 实现图像中水平线检测与校正

前言 在本文中,我们将探讨如何使用 Python 和 OpenCV 库来检测图像中的水平线,并对图像进行旋转校正以使这些线条水平。这种技术可广泛应用于文档扫描、建筑摄影校正以及机器视觉中的各种场景。 环境准备 首先,确保您的环境中安装了 OpenC…

gulimall-search P125 springboot整合elasticsearch版本冲突

一、问题 spring-boot.version 2.2.4.RELEASE,在gulimall-search pom.xml中添加elasticsearch.version 7.4.2后,发现出现如下问题:elasticsearch版本是springboot引入的6.8.6,没有变为7.4.2。 二、原因 在gulimall-search 的pom文件中&#…

01_初识微服务

文章目录 一、微服务概述1.1 什么是微服务1.2 对比微服务架构与单体架构1.3 微服务设计原则1.4 微服务开发框架1.5 简单理解分布式部署与集群部署 二、微服务的核心概念2.1 服务注册与发现2.2 微服调用(通信)2.3 服务网关2.4 服务容错2.5 链路追踪参考链…

初级网络工程师之入门到入狱(一)

本文是我在学习过程中记录学习的点点滴滴,目的是为了学完之后巩固一下顺便也和大家分享一下,日后忘记了也可以方便快速的复习。 网络工程师从入门到入狱 前言一、交换机二、路由器三、DHCP(动态主机配置协议)四、路由器配置 DHCP自…

前端面试宝典总结2-CSS(1)

前端面试宝典总结之CSS(1) 本文章 对各大学习技术论坛知识点,进行总结、归纳自用学习,共勉🙏 上一篇👉: 前端面试宝典总结1- html 文章目录 前端面试宝典总结之CSS(1)1.分析比较 o…

C++ | Leetcode C++题解之第129题求根节点到叶节点数字之和

题目&#xff1a; 题解&#xff1a; class Solution { public:int sumNumbers(TreeNode* root) {if (root nullptr) {return 0;}int sum 0;queue<TreeNode*> nodeQueue;queue<int> numQueue;nodeQueue.push(root);numQueue.push(root->val);while (!nodeQueu…

【全开源】CMS内容管理系统(ThinkPHP+FastAdmin)

基于ThinkPHPFastAdmin的CMS内容管理系统&#xff0c;自定义内容模型、自定义单页、自定义表单、专题、统计报表、会员发布等 提供全部前后台无加密源代码和数据库私有化部署&#xff0c;UniAPP版本提供全部无加密UniAPP源码​ &#x1f50d; 解锁内容管理新境界&#xff1a;C…

高级 Go 程序设计:使用 net/http/httputil 包构建高效网络服务

高级 Go 程序设计&#xff1a;使用 net/http/httputil 包构建高效网络服务 介绍ReverseProxy 的使用基本概念实现步骤高级配置实际案例 DumpRequest 的使用功能说明代码示例应用场景NewSingleHostReverseProxy 的特性功能概述 详细教程 注意事项使用 NewChunkedWriter 实现高效…

【Linux-Uboot】

Linux-Uboot ■ Uboot使用 串口软件&#xff08;超级终端&#xff09;接受文件■ ■ Uboot使用 串口软件&#xff08;超级终端&#xff09;接受文件 添加链接描述 ■

ubuntu-server(22.04)安装

准备工作 首先我们先从网上获取ubuntu的iso镜像文件 Index of /ubuntu-releases/22.04/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 我们安装这个最小包即可 找到我们ubuntu安装完成后所需要下载安装源的网址&#xff08;常用是阿里云&#xff09; ubuntu安装…

如何在外网http访问内网邮件server?

不少公司选择用winmail搭建部署内部邮箱服务器&#xff0c;对于邮件管理员&#xff0c;不但需要在局域网内&#xff0c;常常需要在外网也能访问到邮箱服务管理。winmail本身系统功能可以开启http访问管理&#xff0c;但当需要在外网http访问内网邮箱服务时&#xff0c;需要用到…

ArcGIS Pro SDK (一)环境配置

ArcGIS Pro SDK &#xff08;一&#xff09;环境配置 安装 .NET6 SDK - Download .NET 6.0 (Linux, macOS, and Windows) (microsoft.com) 安装 ArcGIS Pro 3.0&#xff08;需要详细ArcGIS安装pj请留言&#xff09; 安装 Visual Studio 2022 - Visual Studio: 面向软件开发人…

删除Windows网络连接的网络编号,网络号,有线网卡的网络1,网络2....,快速批量删除每次增加的网络序号

USB共享网卡&#xff0c;或者USB有线网卡&#xff0c;每次插上后&#xff0c;网络序号都在一直增加&#xff0c;从网络1加到网络100多&#xff0c;虽然不影响什么&#xff0c;但是看着就是不舒服。 网上的教程一般是一个个点删除&#xff0c;我这里序号都加到100多了&#xff…

初识springcloud

springcloud eureka eureka的作用 消费者该如何获取服务提供者具体信息&#xff1f; 服务提供者启动时向eureka注册自己的信息,eureka保存这些信息消费者,根据服务名称向eureka拉取提供者信息 如果有多个服务提供者&#xff0c;消费者该如何选择&#xff1f; 服务消费者利…

【刷题(17)】技巧

一 技巧基础 二 136. 只出现一次的数字 1 题目 2 解题思路 哈希表map 其实看到题目数组中某个元素出现的次数也可以直接用unordered_map容器统计每一个元素出现的次数&#xff0c;然后在遍历整个map容器查看是否有元素出现的次数等于1 3 code class Solution { public:in…

Python开发运维:VSCode与Pycharm 部署 Anaconda虚拟环境

目录 一、实验 1.环境 2.Windows 部署 Anaconda 3.Anaconda 使用 4.VSCode 部署 Anaconda虚拟环境 5.Pycharm 部署 Anaconda虚拟环境 6.Windows使用命令窗口版 Jupyter Notebook 7.Anaconda 图形化界面 二、问题 1.VSCode 运行.ipynb代码时报错 2.pip 如何使用国内…

分布式ID生成方式

1.UUID uuid方式存在问题&#xff1a;占用字节数比较大&#xff1b;ID比较随机&#xff0c;作为MySQL主键写入库时&#xff0c;为了保证顺序性将导致BTree节点分裂比较频繁&#xff0c;影响IO性能。 2.数据库方式 步长step 3&#xff0c;即为机器的数量。 第一台机器&#x…

音视频开发17 FFmpeg 音频解码- 将 aac 解码成 pcm

这一节&#xff0c;接 音视频开发12 FFmpeg 解复用详情分析&#xff0c;前面我们已经对一个 MP4文件&#xff0c;或者 FLV文件&#xff0c;或者TS文件进行了 解复用&#xff0c;解出来的 视频是H264,音频是AAC&#xff0c;那么接下来就要对H264和AAC进行处理&#xff0c;这一节…