回 帖 发 新 帖 刷新版面

主题:如何阻止用户两次启动我的应用程序?

请教:
      如何阻止用户两次启动我的应用程序?

回复列表 (共30个回复)

21 楼

*不好意思,还是行不通 给个Q号 我发个config.fpw 给你吧
*config.fpw 的内容应该是


screen=off
title=送电线路工程施工管理系统
resource=off

22 楼

SET SCREEN OFF
不对

23 楼

我有邮箱:shyywh@126.com

24 楼

已发到您的邮箱.

25 楼

一次也不能启动了。

26 楼

因关闭的是VFP窗口,然后打开表单如果不是这样,VFP窗口就不见了,您稍等一会我在试,结果吗上告诉你.

27 楼

已能阻止两次启动,已经很感谢了。等待你的好消息。

28 楼

OK 了 加一句 _Screen.Show
就行了

29 楼

SET TALK OFF
SET SAFETY OFF
SET DELETED OFF
SET CENTURY ON
SET DATE TO ANSI

DECLARE INTEGER ShellExecute IN shell32.DLL INTEGER HWND,STRING,STRING lpszFile,STRING,STRING,INTEGER

DECLARE INTEGER CreateMutex IN kernel32.DLL INTEGER,INTEGER,String 
DECLARE INTEGER GetLastError IN kernel32.DLL
DECLARE INTEGER CloseHandle IN kernel32.DLL
handle=CreateMutex(0,0,"送电线路工程施工管理系统")
IF handle=0 
   _screen.windowstate=2
   MESSAGEBOX("创建互斥体失败!",0,"信息提示!") 
   RETURN .f.
ELSE 
   IF GetLastError()=183
      _screen.windowstate=2
      =MESSAGEBOX("程序不能重复同时启动!",48," 信息提示!")
      CLOSE all 
      Clear dlls 
     QUIT 
   ENDIF
ENDIF


PUBLIC xtPth,xtDm,xtCapt
          xtPth = left(sys(16,1),rat("\",sys(16,1)))
    CD &xtPth
    xtDm = "0000"    &&用户调用不同项目时,其值会被更改。
    xtCapt = "送电线路工程施工管理系统"
    _screen.Caption=xtCapt+"        当前工程项目:  ["+xtDm+"]"   && 随着更改
    _screen.Icon = "sd_ico.ico"
    _screen.Height=600
    _screen.Width=900
    
    **加一句恢复VFP窗口也就OK了
    _Screen.Show

ON SHUTDOWN Shutdown()
ON ERROR ErrorHandler(ERROR(),PROGRAM(),LINENO())
PUBLIC xtMenu as menu,xtToolbar as Toolbar
    xtMenu="sd_menu.mpr"
    DO &xtMenu
    set classlib to bar1 additive
    xtToolbar=createobject('sd_toolbar')
    xtToolbar.show
    xtToolbar.dock(0)
    SET MARK of BAR 1 of _mwindow to .T.
    SET MARK of BAR 2 of _mwindow to .T.
READ events
SET PATH TO
CLEAR ALL
CLOSE ALL
POP MENU _msysmenu
ON ERROR
ON SHUTDOWN
RETURN

30 楼

是的,谢谢。

请再回我另外的贴,我给你评分。

“如何让窗口启动时的位置依次叠放?”

我来回复

您尚未登录,请登录后再回复。点此登录或注册