VB怎样判断、防止程序重复执行
Private Sub Form_load()
'判断程序是否已经运行
If App.PrevInstance
Then
MsgBox "本程序已经运行!", vbInformation Or vbOKOnly, "提示信息"
Unload
Me
Exit Sub
End If
'以下是主要程序
' ……
End
Sub
附:另一个例子:
Option Explicit
Public Sub CheckExist(fm
As Form) '防止程序重复执行
Dim title As String
If App.PrevInstance
Then
title = App.title
Call MsgBox("这程序已执行",
vbCritical)
App.title = "" '如此才不会 Avtivate 到自己
fm.Caption =
""
AppActivate title 'activate 先前就已运行的程序
End ' 结束
End
If
End Sub
Private Sub Form_Load()
Call
CheckExist(Me)
End Sub
相关文档:
VB隐藏进程问题的讨论由来已久,效果有好有坏,反正是各有各的招,偶然机会看到planet-source一段隐藏进程的文章,作者说采用了kernel mode driver!方法,
单从技术方法而言,这是目前见到隐藏进程中最强悍的了(个人见解,井底之蛙了),不过这种东西用在正义的人手上是一个除暴安良的利器,用心叵测者就不好说了,但是技术终归是技术 ......
VERSION 5.00
Begin VB.Form Form2
AutoRedraw = -1 'True
Caption = "计算界面"
ClientHeight = 4905
ClientLe ......
Option Explicit
Dim potflag As Integer '标识是否用小数点
Dim numcol As Integer ' 点击运算符的个数
Dim LastInput ' 指示上一次操作的内容
Dim colflag ......
Option Explicit
Private Const NCBASTAT = &H33
Private Const NCBNAMSZ = 16
Private Const HEAP_ZERO_MEMORY = &H8
Private Const HEAP_GENERATE_EXCEPTIONS = &H4
Private Const NCBRESET = &H32
Private Type NCB
ncb_command As Byte
ncb_retcode As Byte
ncb_lsn As Byte
ncb_num As Byte ......
建一个模块
Public Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
Public Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilt ......