VFP如何编写一个主程序,怎么样防止软件重复启动?

一个应用软件,如果没有一个主程序(这像一棵树,没有树干,充其量好象只能是灌木了吧),没有一根主线,很难想象在编程时该怎么写代码?怎样控制程序的流程?(当然不是非得有主程序不可 ^_^ )

作为一个主程序,应该包括哪些内容或者说是哪些功能?鄙人以为:

1、初始化环境(我习惯在Config.Fpw中设置)

2、初始化系统变量

3、初始化界面(这要根据需要而定)

……

有些程序为了适应客户要求,需做些LOGO界面,问题有了(这问题可能也算是本论坛的精华问题之一吧):

如何去掉Visual FoxPro的主窗口?

首先:Modify Command Config.fpw(建立资源文件)

以上各个设置并非必须,我把以前一个程序的设置拷贝过来的,由于时间关系(我写文章的热情一般最多保持半个小时 :( ),这里不作一一说明。

其次,在你的主程序的第一语句写上(必须是第一语句,这样当程序运行时,不论机器速度如何,界面过渡会显得最完美):

如何防止客户重复启动!!!

由于编程的要求及其他方面的问题,客户无意中重复启动应用程序往往可能会造成不可预测的问题(当然,如果在编程时就考虑到数据共享、重复运行等因素,则客户完全可以多次打开一个应用软件,一边删、一边改)。

经常在论坛的人大都知道两种以上的方法,我这儿呢一股脑儿全列出来,大家自己摸摸!!

如何防止应用软件重复启动(1)

在应用软件启动后,在硬盘上留下一个特定的文件。这种方法只要在启动时检测一下这个文件是否存在,作一个判断即可。

存在缺陷:当应用软件由于不可预见的情况,非正常退出的情况下,该文件得不到及时删除,怎么办?

我KAO,想出来了,这个特定的文件为任一空的数据表,在应用软件中以独占方式找开它,那么当第二次再需打开会提示出错。

如何防止应用软件重复启动(2)

用FindWindow 及ShowWindowAsync API函数:

存在缺陷:无法判断窗口标题动态变动的情况

如何防止应用软件重复启动(3)

用程序特定的类及相关的特性综合判断,先用GetClassName取得应用软件的类名,再根据类名查找是否有同样的窗体存在,以下是一个简单的相关示例:

这是一个框框而已,你可以根据应用程序的各种不同的特征,来检测是否有窗体存在。

存在缺陷:如何“设置”应用软件的特定的类信息我自己搞糊涂了,如何能在应用软件中设置特定的类信息,那才能做到“完美无缺”

如何防止应用软件重复启动(4)

——好象是刚才论坛里搞出来的,是谁定的,说一声 ^_^

内存映谢文件防止应用应用程序运行

注:在程序结束处别望了一定要:

以上经测试效果也相当不错,由于本人水平有限,对于用这种方式会不会造成多占用内存(应该说对于CreateFileMapping API函数的功能不清楚吧!),心里没底,反正大家再试试!!

…………

方法是多种多样的,大家再讨论讨论。

如果有初始化的界面,那么接下去…………

主程序的最后应该是设置应用软件的路径、背景等设置,最后——显示界面。

今个活特多,不写了。对了,下面拷贝一个我刚写完的主程序,大家看看。

写在最后面的话

加菲猫的vfp倡导用VFP极简混合开发,少写代码、快速出活,用VFP,但不局限于VFP,各种语言混合开发。

已经带领一百多名会员成功掌到VFP的黑科技,进入了移动互联 时代,接下来我们要进入物联 领域。

2021年会员继续招募中

会员获取的权益有:

祺佑三层开发框架商业版(猫框),终身免费升级,终身技术支持。

开放的录播课程有:

源码类资源有:

支付组件源码,短信源码,权限组件源码,一些完整系统的源码。

会员也可以实现群内资源对接,可以接分包,合作等各项商业或技术业务

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年8月1日
下一篇 2021年8月1日

相关推荐