数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

使用PB限制应用程序只运行一次


发布日期:2023年10月22日
 
使用PB限制应用程序只运行一次

位操作系统中可以用两种方法实现

首先在global external functions声明外部函数如下

FUNCTION long FindWindowA( ulong Winhandle string wintitle ) Library ″user

然后在application的 Open 事件中加入如下代码

ulong l_handle lu_class

string ls_name

ls_name = ″我的系统″ // 此处ls_name为系统主窗口的标题Title

l_handle = FindWindowA(lu_class ls_name)

if l_handle > then

MessageBox(″提示信息″ ″应用程序″ + ThisAppName + ″已经运行不能多次启动!″)

Halt Close

else

open(w_main) // 此处为系统主窗口

end if

这种方法是PowerBuilder联机帮助中的一个例子是以系统主窗口的标题Title作为判别依据若有其它与此Title同名应用程序在运行再想启动此程序也会报应用程序已经运行你可以将Title设为计算器然后启动Windows附件中计算器程序再运行你的PB应用程序试试

声明外部函数

function ulong CreateMutexA (ulong lpMutexAttributes int bInitialOwner ref string lpName) library ″kerneldll″

function ulong GetLastError () library ″kerneldll″

然后在application的 Open 事件中加入如下代码

ulong ll_mutex ll_err

string ls_mutex_name

if handle (GetApplication () false) <> then

ls_mutex_name = thisAppName + char (

ll_mutex = CreateMutexA ( ls_mutex_name)

ll_err = GetLastError ()

if ll_err = then

// 程序已经运行

MessageBox (″提示信息″ ″程序已经运行了!″)

Halt close

else

// 程序未运行

open(w_main)

end if

else //开发模式

open(w_main)

end if

这种方法必须在应用程序编译成可执行文件exe后才有效

编辑推荐

ASP NET开发培训视频教程

Microsoft NET框架程序设计视频教程

上一篇:一个小老板眼中的开发工具— PB 杂谈[1]

下一篇:在PB中调用外部函数[2]