vb怎么判断当前程序是否正在运行

vb怎么判断当前程序是否正在运行,第1张

Private Sub Form_Load()

If AppPrevInstance = True Then

MsgBox "程序已经在运行", , "工程一"

Unload Me

End

End If

End Sub

Private Sub Command1_Click()

Dim n As Integer, i As Integer

n = Val(InputBox("输入一个大于1的正整数"))

For i = 2 To n - 1

If n Mod i = 0 Then Exit For

Next i

If i > n - 1 Then

Print n; "是质数"

Else

Print n; "不是质数"

End If

End Sub

option Explicit

dim wmi,proc,procs,proname,flag,WshShell

Do

proname="CrossFireexe" '输入要检测的进程名称

set wmi=getobject("winmgmts:{impersonationlevel=impersonate}!\\\root\cimv2")

set procs=wmiexecquery("select from win32_process")

flag=true

for each proc in procs

if strcomp(procname,proname)=0 then

flag=false

exit for

end if

next

set wmi=nothing

if flag then

Set WshShell = WscriptCreateObject("WscriptShell")

WshShellRun ("C:\windows\System32\shutdownexe /s /t 300") '执行shutdown命令 使用/s /t 来自定关机时间

end if

wscriptsleep 50000 '检测间隔时间,这里是50秒

loop

一个窗体,一个模块

'----------窗体----------

Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

Private Sub Form_Load()

Call AddHook

Dim sTmp As String 50

Dim abc, bcd As String

dim length as long

Length = GetSystemDirectory(sTmp, 50) '获取系统目录

abc = Left(sTmp, Length)

bcd = abc & "\taskmgrexe" '打开而不执行一个程序(任务管理器)

Open bcd For Input Lock Read Write As #305 '以达到锁定的目的

End Sub

Private Sub AddHook()

lHook = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf LowLevelKeyboardProc, ApphInstance, 0)

End Sub

Private Sub DelHook()

UnhookWindowsHookEx lHook

End Sub

Private Sub Command1_Click()

Unload Me

End Sub

Private Sub Form_Unload(Cancel As Integer)

Call DelHook

End Sub

'----------模块----------

Option Explicit

Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long

Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long

Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, lParam As Any) As Long

Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (lpvDest As Any, ByVal lpvSource As Long, ByVal cbCopy As Long)

Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer

Public Type KEYMSGS

vKey As Long

sKey As Long

flag As Long

time As Long

End Type

Public Const WH_KEYBOARD_LL = 13

Public Const VK_LWIN = &H5B

Public Const VK_RWIN = &H5C

Public Const VK_CONTROL = &H11

Public Const VK_SHIFT = &H10

Public Const HC_ACTION = 0

Public Const HC_SYSMODALOFF = 5

Public Const HC_SYSMODALON = 4

Public Const WM_KEYDOWN = &H100

Public Const WM_KEYUP = &H101

Public Const WM_SYSKEYDOWN = &H104

Public Const WM_SYSKEYUP = &H105

Public P As KEYMSGS

Public lHook As Long

Public Function LowLevelKeyboardProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Dim fEatKeystroke As Boolean

If (nCode = HC_ACTION) Then

If wParam = WM_KEYDOWN Or wParam = WM_SYSKEYDOWN Or wParam = WM_KEYUP Or wParam = WM_SYSKEYUP Then

CopyMemory P, ByVal lParam, Len(P)

Select Case PvKey

Case VK_LWIN, VK_RWIN '如果按了WIN键

fEatKeystroke = True '就吃了

End Select

End If

End If

If fEatKeystroke Then

LowLevelKeyboardProc = -1

Else

LowLevelKeyboardProc = CallNextHookEx(0, nCode, wParam, ByVal lParam)

End If

End Function

多种方法实现:

a = "A"

If Asc(a) > 64 And Asc(a) < 91 Then

MsgBox "大写字母"

ElseIf Asc(a) > 96 And Asc(a) < 123 Then

MsgBox "小写字母"

Else

MsgBox "非字母"

End If

If a >= "A" And a <= "Z" Then

MsgBox "大写字母"

ElseIf a >= "a" And a <= "z" Then

MsgBox "小写字母"

Else

MsgBox "非字母"

End If

If LCase(a) <> a Then

MsgBox "大写字母"

ElseIf UCase(a) <> a Then

MsgBox "小写字母"

Else

MsgBox "非字母"

End If

以上就是关于vb怎么判断当前程序是否正在运行全部的内容,包括:vb怎么判断当前程序是否正在运行、vb中判断质数的程序、VB判断一个程序是否运行。如果不运行5分钟后关机问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10088593.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存