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分钟后关机问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)