熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PB編程 >> 正文

使用PB限制應用程序只運行一次

2022-06-13   來源: 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框架程序設計視頻教程


From:http://tw.wingwit.com/Article/program/PB/201311/24617.html
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.