[VB] 防止程序运行多个实例

2016-01-29 13:07 80 1 收藏

[VB] 防止程序运行多个实例,[VB] 防止程序运行多个实例

【 tulaoshi.com - ASP.NET 】


http://www.zdnet.com.cn/developer/code/story/0,3800066897,39250501,00.htm有时候,允许程序启动多个实例并不是一件好事。比如一个程序用来监视某个文件夹并跟踪文件夹中的新文件,这种程序只要一个实例就足够了。同样,如果一个前端数据库程序运新了多个实例,对数据库中相同内容的同时操作有可能导致数据错误。
要防止程序运行多个实例,只要使用App.PrevInstance属性就可以了。当有另一个实例正在运行时,该属性会返回True。你可以在程序的Load事件中调用这个属性进行判断。如果返回值为True,你可以向用户显示一条信息,更进一步,在关闭这个新实例前,还可以激活已有的实例,这也是目前大部分程序采用的方式。下面的代码可以在必要时显示一条警告信息:
If App.PrevInstance Then MsgBox "Another instance of this program is already open." AppActivate App.Title Unload MeEnd If
作者:Peter Aitken。自从Visual Basic 1.0版问世以来,Peter Aitken就一直在使用VB编程。他已经编写过很多关于VisualBasic以及其他计算机和编程方面的书籍和杂志文章了。

=======================
另:http://member.netease.com/~kenj/JA.htm以下代码可以直接打开已经存在的应用。(在最小化时好象有问题。)If App.PrevInstance Then sAppTitle = App.Title App.Title = "DUMMY_" AppActivate sAppTitle SendKeys "%{ }{Enter}", True End If到页首

来源:http://www.tulaoshi.com/n/20160129/1488988.html

延伸阅读
----在我编制的一个控制系统中,需要对不同模块的不同状态设置相应参数.由于设置的参数名称都一样,只是具体内容不同,我不再象往常一样创建不同的窗口,摆放相同的部件,编制几乎相同的代码,而使用了窗体实例.其实现过程大致如下: 新建一个Form(我使用的是MDIForm,用一般的form也一样,我试过),取名为form1,再建一个窗口取名为form2; ...
有时候在开发应用程序时,希望控制程序运行唯一的实例。例如,最常用的mp3播放软件Winamp,由于它需要独占计算机中的音频设备,因此该程序只允许自身运行唯一的一个例程。在Visual C++的开发实践中,对于16位的Windows系统,应用程序的hPrevInstance句柄保存了应用程序上一个运行的实例,可以用该值来检查是否有实例运行;然而在32位Window...
在开发软件时,有时可能需要使软件在运行时不让别人从控制面板中修改修改系统的日期和时间,实现此功能的具体思路是:在软件运行是自己建立一个时钟,如果发现系统时间被修改,再用自己的时钟将系统时间改回来就可以了,VB中有一个控件叫SysInfo,可以用它的TimeChanged事件来监测系统时间是否已修改,请看下面的例子程序: 1、建立一个标准E...
有些时候,我们需要我们的程序只运行一个实例,笔者自己作程序也有这样的情况,于是自已探究一番。忙活一阵后,总算小有收获,不敢独享,在天极发表出来,供大家参考。 既然是从根本上解决问题,对于Windows程序而言,就从WinMain函数入口,这是因为在VC中使用SDK的方式编写程序最透明,并且WinMain是作为VC编译器生成EXE文件的默认入...
dim a(10,10),b(100) as longFor i = 1 To 10 For j = 1 To 10 a(i, j) = "0" Next jNext iFor k = 1 To 20 '²¼À×10: a1 = Int(Rnd * 10) + 1 b1 = Int(Rnd * 10) + 1 If a(a1, b1) = "0" Then a(a1, b1) = "*" n = n + 1 Else GoTo 10 End IfNext k'ÉèÖÃ&...

经验教程

87

收藏

70
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部