📄 mdlprocess.bas
字号:
Attribute VB_Name = "mdlProcess"
Option Explicit
Public Declare Function CreateProcess Lib "kernel32" Alias "CreateProcessA" (ByVal lpApplicationName As String, ByVal lpCommandLine As String, lpProcessAttributes As SECURITY_ATTRIBUTES, lpThreadAttributes As SECURITY_ATTRIBUTES, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, lpEnvironment As Any, ByVal lpCurrentDriectory As String, lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) As Long
Public Declare Function GetProcessTimes Lib "kernel32" (ByVal Hprocess As Long, lpCreationTime As FILETIME, lpExitTime As FILETIME, lpKernelTime As FILETIME, lpUserTime As FILETIME) As Long
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type
Public Type STARTUPINFO
cb As Long
lpReserved As String
lpDesktop As String
lpTitle As String
dwX As Long
dwY As Long
dwXSize As Long
dwYSize As Long
dwXCountChars As Long
dwYCountChars As Long
dwFillAttribute As Long
dwFlags As Long
wShowWindow As Integer
cbReserved2 As Integer
lpReserved2 As Long
hStdInput As Long
hStdOutput As Long
hStdError As Long
End Type
Public Type PROCESS_INFORMATION
Hprocess As Long
hThread As Long
dwProcessId As Long
dwThreadId As Long
End Type
Public Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
Public Const NORMAL_PRIORITY_CLASS = &H20
Public Const SW_HIDE = 0
Public Const STARTF_USESHOWWINDOW = &H1
Public se1 As SECURITY_ATTRIBUTES
Public se2 As SECURITY_ATTRIBUTES
Public si As STARTUPINFO
Public pi As PROCESS_INFORMATION
Public ev As Variant
Public Ct As FILETIME
Public Et As FILETIME
Public Kt As FILETIME
Public Ut As FILETIME
Public Function ShellExe(ByVal AppExe As String, ByVal sCmd As String) As Boolean
'si.wShowWindow = SW_HIDE
'si.dwFlags = STARTF_USESHOWWINDOW
If CreateProcess(AppExe, sCmd, se1, se2, True, NORMAL_PRIORITY_CLASS, ev, vbNullString, si, pi) Then
Do While GetProcessTimes(pi.Hprocess, Ct, Et, Kt, Ut) And Et.dwLowDateTime = 0
Sleep 200
Loop
ShellExe = True
Else
ShellExe = False
End If
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -