| 网站首页 | JAVA文章 | AppServers | Web开发 | 应用开发 | 资源下载 | 论坛
    想学好编程,学好外语很重要  [enadd  2006年12月25日]        
设为首页 加入收藏 联系站长
您现在的位置: 编程笔记网 >> 应用开发 >> pb >> 编程技巧 >> 文章正文
如何让应用程序只运行一次            【字体:
如何让应用程序只运行一次
作者:-    文章来源:-    点击数:    更新时间:2006-4-14

在Powerbuilder的帮助中,Handle函数之下有一段代码,用于控制一个PB应用程序只运行一个实例,但是该段程序不能在Win 32之下使用。

下面这段代码放在Application的Open事件之中:它首先检查应用程序是否运行,若已经运行,则退出,否则打开应用程序主窗口:

IF Handle(This, TRUE) > 0 THEN

MessageBox("应用程序多次运行", This.AppName + "已经运行,你不能多次启动!")
HALT CLOSE
ELSE
Open(w_main)
END IF
---------------------------------------------------------------------------------------------------------------------------

以上代码在Win 32环境不能正常运行,这不是PB的bug,是因为PB调用的一个API函数在Win16之中有,而在Win 32中没有了这个函数。在Win 32环境下使用以下代码可完成同梓的功能:

定义一个全局外部函数:
FUNCTION ulong FindWindowA(ulong classname,string windowname) LIBRARY "user32.dll"

Application的Open事件中的代码:

boolean rtn
ulong l_handle, lu_class
string ls_name
setnull(lu_class)
ls_name = "API Name" // 将API 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

[1]

文章录入:enadd    责任编辑:enadd 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
  • PB编程技巧实例

  • 制作中国式报表(二)

  • 制作中国式报表(一)

  • PB中隐藏下拉数据窗的检索参…

  • 在PB中巧用下拉数据窗口

  • PowerBuilder中数据窗口使用…

  • DataWindow的数据缓冲区

  • 利用PowerBuilder开发格式生…

  • 用DataWindow实现对多表的修…

  • 不安装Oracle数据库的连接方…

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 |