
.版本 2
.程序集 窗口程序集_启动窗口
.子程序 _按钮1_被单击
.子程序 __启动窗口_创建完毕
时钟1.时钟周期 = 100
.子程序 _时钟1_周期事件
.判断开始 (进程是否存在 (“zmmzdd.exe”))
编辑框1.内容 = “程序已运行”
.默认
编辑框1.内容 = “程序未运行”
.判断结束
.子程序 _编辑框1_内容被改变
zmmzdd.exe是要检测进程的程序。
系统测试的方法主要有人工测试和机器测试两种。(1)人工测试。人工测试又称为代码复审,是通过阅读程序找错误的。其内容主要包括检查代码和设计是否一致:检查代码逻辑表达是否正确和完整检查代码结构是否合理。
(2)机器测试。机器测试是指在计算机上直接用测试用例运行被测程序,从而发现程序错误。机器测试分为黑盒测试和白盒测试两种。
①黑盒测试。黑盒测试也称功能测试或数据驱动测试,它已知产品所应具有的功能,通过测试检测每个功能是否都能正常使用。在测试时,把程序看作是一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,它只检测程序功能是否能够按照需求规格说明的规定正常使用,程序是否能适当接收输入数据而产生正确的输出信息,并保持外部信息(如数据库或文件)的完整性。黑盒测试的方法主要有等价类划分、边值分析、因果图、错误推测等,黑盒测试主要用于软件确认测试。黑盒测试着眼于程序外部结构,不考虑程序内部逻辑结构,只针对软件界面和软件功能进行测试。黑盒测试是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中的所有错误。实际上,测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。
②白盒测试。白盒测试也称结构测试或逻辑驱动测试,它已知产品内部工作过程,按照程序内部的结构测试程序,可通过测试检测产品内部动作是否按照说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。白盒测试的主要方法有逻辑驱动、基路测试等,白盒测试主要用于系统验证。
检测某程序是需要检测进程吧,FindWindow是查找窗口...别人把窗口隐藏了你找什么去~~~~~先把找进程的贴出来,再贴查版本的....
进程查找:(我是把代码全搬出来了,有些其他你不要的函数自己清理下)
(模块)
声明:
'进程-查找
Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long
Private Declare Function Process32First Lib "kernel32" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long
Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal blnheritHandle As Long, ByVal dwAppProcessId As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32" (ByVal ApphProcess As Long, ByVal uExitCode As Long) As Long
Private Type PROCESSENTRY32
dwSize As Long
cntUsage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32ModuleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
dwFlags As Long
szExeFile As String * 1024
End Type
Private Const TH32CS_SNAPHEAPLIST = &H1
Private Const TH32CS_SNAPPROCESS = &H2
Private Const TH32CS_SNAPTHREAD = &H4
Private Const TH32CS_SNAPMODULE = &H8
Private Const TH32CS_SNAPALL = (TH32CS_SNAPHEAPLIST Or TH32CS_SNAPPROCESS Or TH32CS_SNAPTHREAD Or TH32CS_SNAPMODULE)
Private Const TH32CS_INHERIT = &H80000000
Private Declare Function RegisterWindowMessage Lib "user32" Alias "RegisterWindowMessageA" (ByVal lpString As String) As Long
Private WM_TASKBARCREATED As Long
'------------------------------------------------------------------------------
'进程 *** 作部分:--------此部分只作为主程序的专有部分,其他子程序暂无 *** 作进程功能-------------------------
'查找函数
Public Function FindPro(ByVal sExePro As String, ByRef lProID As Long) As Integer '1找到该进程,0没找到
Dim my As PROCESSENTRY32
Dim l As Long
Dim l1 As Long
Dim mName As String
Dim i As Integer
Dim PID
FindPro = 0
sExePro = LCase(sExePro)
l = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)
If l Then
my.dwSize = 1060
If (Process32First(l, my)) Then '遍历开始
Do
i = InStr(1, my.szExeFile, Chr(0))
mName = LCase(Left(my.szExeFile, i - 1))
If mName = sExePro Then
PID = my.th32ProcessID
'pname = mName
Dim mProcID As Long
mProcID = OpenProcess(1&, -1&, PID)
lProID = mProcID
'MsgBox pname
'TerminateProcess mProcID, 0&
FindPro = 1 '找到进程
Exit Function
End If
Loop Until (Process32Next(l, my) <1)
End If
l1 = CloseHandle(l)
End If
End Function
'结束进程(查找进程,如存在则结束,不存在则无 *** 作)
Public Function SetEndPro(ByVal sExePro As String) As Integer '1成功结束,-1无此进程,0结束进程失败
Dim lProID As Long
Dim tmBack As Long
lProID = -1
If FindPro(sExePro, lProID) = 1 Then
tmBack = TerminateProcess(lProID, 0&)
If tmBack <>0 Then
SetEndPro = 1 '成功结束进程
Else
SetEndPro = 0 '失败
End If
CloseHandle lProID
Exit Function
Else
SetEndPro = -1 '不存在
End If
End Function
'--------------------------------------------------------
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'(完了再贴检测版本,你自己组合下函数就好了.仍然有很多你不要的函数声明,自己清理下)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''Ver for AOS.exe'''''''''''''''''''
Type VS_FIXEDFILEINFO
dwSignature As Long
dwStrucVersionl As Integer ' e.g. = &h0000 = 0
dwStrucVersionh As Integer ' e.g. = &h0042 = .42
dwFileVersionMSl As Integer' e.g. = &h0003 = 3
dwFileVersionMSh As Integer' e.g. = &h0075 = .75
dwFileVersionLSl As Integer' e.g. = &h0000 = 0
dwFileVersionLSh As Integer' e.g. = &h0031 = .31
dwProductVersionMSl As Integer ' e.g. = &h0003 = 3
dwProductVersionMSh As Integer ' e.g. = &h0010 = .1
dwProductVersionLSl As Integer ' e.g. = &h0000 = 0
dwProductVersionLSh As Integer ' e.g. = &h0031 = .31
dwFileFlagsMask As Long' = &h3F for version "0.42"
dwFileFlags As Long' e.g. VFF_DEBUG Or VFF_PRERELEASE
dwFileOS As Long ' e.g. VOS_DOS_WINDOWS16
dwFileType As Long ' e.g. VFT_DRIVER
dwFileSubtype As Long ' e.g. VFT2_DRV_KEYBOARD
dwFileDateMS As Long ' e.g. 0
dwFileDateLS As Long ' e.g. 0
End Type
Declare Function GetFileVersionInfo Lib "Version.dll" Alias _
"GetFileVersionInfoA" (ByVal lptstrFilename As String, ByVal _
dwhandle As Long, ByVal dwlen As Long, lpData As Any) As Long
Declare Function GetFileVersionInfoSize Lib "Version.dll" Alias _
"GetFileVersionInfoSizeA" (ByVal lptstrFilename As String, _
lpdwHandle As Long) As Long
Declare Function VerQueryValue Lib "Version.dll" Alias _
"VerQueryValueA" (pBlock As Any, ByVal lpSubBlock As String, _
lplpBuffer As Any, puLen As Long) As Long
Declare Sub MoveMemory Lib "kernel32" Alias "RtlMoveMemory" _
(dest As Any, ByVal Source As Long, ByVal Length As Long)
Public Function GetVer(Optional ExePath) As String
'*** Get Version Info ****
If Not IsMissing(ExePath) Then
fullfilename = ExePath
Else
fullfilename = App.EXEName + ".exe"
End If
Dim FileVer As String
Dim rcAs Long
Dim lDummyAs Long
Dim sBuffer() As Byte
Dim lBufferLenAs Long
Dim lVerPointer As Long
Dim udtVerBuffer As VS_FIXEDFILEINFO
Dim lVerbufferLen As Long
'*** Get size ****
lBufferLen = GetFileVersionInfoSize(fullfilename, lDummy)
If lBufferLen <1 Then
'MsgBox "该文件没有版本信息!", vbInformation
Exit Function
End If
'**** Store info to udtVerBuffer struct ****
ReDim sBuffer(lBufferLen)
rc = GetFileVersionInfo(fullfilename, 0&, lBufferLen, sBuffer(0))
rc = VerQueryValue(sBuffer(0), "\", lVerPointer, lVerbufferLen)
MoveMemory udtVerBuffer, lVerPointer, Len(udtVerBuffer)
'**** Determine File Version number ****
FileVer = Format$(udtVerBuffer.dwFileVersionMSh) &"." &_
Format$(udtVerBuffer.dwFileVersionMSl) &"." &_
Format$(udtVerBuffer.dwFileVersionLSh) &"." &_
Format$(udtVerBuffer.dwFileVersionLSl) '倒数第二句Format$(udtVerBuffer.dwFileVersionLSh) &"."
GetVer = FileVer
End Function
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)