|
网站首页
|
模板
|
资料
|
源码
|
工具
|
开发
|
设计
|
安全
|
项目
|
网络
|
图片
|
系统
|
数据库
|
博客
|
会员中心
|
小说
|
网络学院
学习资料
源码模版
您现在的位置:
精品下载
>>
开发
>>
Powerbuilder
>> 文章正文
用户登录
新用户注册
限制应用程序只运行一次
【字体:
小
大
】
限制应用程序只运行一次
作者:佚名 文章来源:不详 点击数: 更新时间:2007-8-30
32位操作系统中,可以用两种方法实现:
1.首先在global external functions声明外部函数如下:
FUNCTION long FindWindowA( ulong Winhandle, string wintitle ) Library ″user32″
然后在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 > 0 then
MessageBox(″提示信息″, ″应用程序″ + This.AppName + ″已经运行,不能多次启动!″)
Halt Close
else
open(w_main) // 此处为系统主窗口
end if
这种方法是PowerBuilder联机帮助中的一个例子,是以系统主窗口的标题Title作为判别依据,若有其它与此Title同名应用程序在运行,再想启动此程序也会报应用程序已经运行。你可以将Title设为“计算器”,然后启动Windows附件中计算器程序,再运行你的PB应用程序试试。
2.声明外部函数:
function ulong CreateMutexA (ulong lpMutexAttributes, int bInitialOwner, ref string lpName) library ″kernel32.dll″
function ulong GetLastError () library ″kernel32.dll″
然后在application的 Open 事件中加入如下代码:
ulong ll_mutex, ll_err
string ls_mutex_name
if handle (GetApplication (), false) <> 0 then
ls_mutex_name = this.AppName + char (0)
ll_mutex = CreateMutexA (0, 0, ls_mutex_name)
ll_err = GetLastError ()
if ll_err = 183 then
// 程序已经运行
MessageBox (″提示信息″, ″程序已经运行了!″)
Halt close
else
// 程序未运行
open(w_main)
end if
else //开发模式
open(w_main)
end if
这种方法必须在应用程序编译成可执行文件.exe后才有效.
文章录入:chqnet 责任编辑:chqnet
上一篇文章:
优化你的PowerBuilder程序
下一篇文章:
在POWER BUILDER中使用WINSOCK控件
【
发表评论
】【
加入收藏
】【
告诉好友
】【
打印此文
】【
关闭窗口
】
最新热点
最新推荐
相关文章
CSS应用中十四个技巧精彩问答
应用CSS完全手册!
样式表在web标准应用存在的问
CSS应用基础教程(1) 基本认识
CSS应用基础教程(2) 应用方式
CSS应用基础教程(3) 应用补充
CSS应用基础教程(4) 颜色背景
CSS应用基础教程(5) 文字性质
CSS应用基础教程(6) 区块性质
CSS应用小技巧十四例
网友评论:
(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
|
设为首页
|
加入收藏
|
联系站长
|
友情链接
|
版权申明
|
在线技术支持:QQ:9296258 MYFTP资料来自网络,免费提供给网民学习。如本站侵犯了您的版权,请与我们联系。
MYFTP 版权所有 Copyright© 2004-2008 站长:
chengq