|
winapi: Ausführen eines Programms und Anhalten der aktuellen Anwendung |
|
Mit diesem Code kann man ein Programm ausführen. Die aktuelle Anwendung wird dabei solange angehalten, bis das ausgeführte Programm beendet ist: - 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
- Declare Function WaitForSingleObject Lib "kernel32" (Byval _
- hHandle As Long, Byval dwMilliseconds As Long) As Long
- Declare Function CreateProcessA Lib "kernel32" (Byval _
- lpApplicationName As Long, Byval lpCommandLine As String, Byval _
- lpProcessAttributes As Long, Byval lpThreadAttributes As Long, _
- Byval bInheritHandles As Long, Byval dwCreationFlags As Long, _
- lpStartupInfo As STARTUPINFO, lpProcessInformation As _
- PROCESS_INFORMATION) As Long
- Declare Function CloseHandle Lib "kernel32" (Byval _
- hObject As Long) As Long
- Public Sub ShellAndWait(Byval RunProg As String)
- Dim RetVal As Long
- Dim proc As PROCESS_INFORMATION
- Dim StartInf As STARTUPINFO
- StartInf.cb = Len(StartInf)
- RetVal = CreateProcessA(0&, RunProg, 0&, 0&, 1&, _
- NORMAL_PRIORITY_CLASS, 0&, 0&, StartInf, proc)
- RetVal = WaitForSingleObject(proc.hProcess, INFINITE)
- RetVal = CloseHandle(proc.hProcess)
- End Sub
|
|