找回密码
 立即注册
搜索
查看: 249|回复: 3

坛子里有懂 VFP 的吗?

[复制链接]

31

主题

506

回帖

705

积分

高级会员

积分
705
发表于 2002-11-8 13:48:38 | 显示全部楼层 |阅读模式
请教一个问题,怎样控制程序的重载入?

134

主题

1122

回帖

1709

积分

荣誉版主

积分
1709
发表于 2002-11-8 14:14:55 | 显示全部楼层
刚出道时候用过几天,不懂。
回复

使用道具 举报

发表于 2002-11-8 14:16:24 | 显示全部楼层
你是指控制程序不重复运行吧?
使用API函数:
if GlobalFindAtom('PROGRAM_RUNNING') = 0 then   //寻找(PROGRAM_RUNNING)全局原子量
    fAtom := GlobalAddAtom('PROGRAM_RUNNING')  如果没有找到,设置此原子量
else
    { 如果有同的程序则退出 }

在程序退出时:执行GlobalDeleteAtom(fAtom)
对于API在VFP中的调用,请查阅MSDN。
回复

使用道具 举报

33

主题

35

回帖

88

积分

注册会员

积分
88
发表于 2002-11-9 20:14:33 | 显示全部楼层
1 在 FoxPro For Windows 中
SET LIBRARY TO SYS(2004)+"foxtools.fll" ADDITIVE
* FindWindow() 使用两个参数并在找到时返回窗口句柄 HWND.
GetWind = RegFn("FindWindow", "CC", "I")
* 设置第一个调用参数为 0, null.
wclass=0
winname="我的程序"
apphand=CallFn(GetWind,wclass ,winname)
* 如果调用成功, 停止处理.

  
IF apphand<>0
   WAIT WINDOW ;
     "不能运行窗口 '我的程序' 的另一个实例!"
   QUIT
ENDIF
MODIFY WINDOW screen TITLE "我的程序"
WAIT WINDOW "窗口 '我的程序' 的第一个实例正在运行."

2 在 Visual FoxPro 中
DECLARE integer FindWindow in Win32Api String, String

wclass=0
winname="我的程序"

apphand = FindWindow(wclass ,winname)

* 如果调用成功, 停止处理.
IF apphand<>0
    WAIT WINDOW "不能运行窗口 '我的程序' 的另一个实例!"
    QUIT
ENDIF
MODIFY WINDOW screen TITLE "我的程序"
WAIT WINDOW "窗口 '我的程序' 的第一个实例正在运行."
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|海浩社区

GMT+8, 2025-9-19 00:29 , Processed in 0.077265 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表