Advertisement
2002VB Windows API Call/ Explanation #20392

VB Code to Shell and Wait

Executes a command passed as a string, and waits for it to finish. Example: lResult = ShellAndWait("d:\ztbold\ztw.exe", 10000) That calls the d:\ztbold\ztw.exe and waits for it to exit for up to 10,000 milliseconds. If you want to call something and redirect its output to a file, you'll have to call CMD.EXE like this: lResult = ShellAndWait("cmd.exe /c MyCommand.EXE > MyFile.TMP", 10000)

AI

Riepilogo AI: This codebase represents a historical implementation of the logic described in the metadata. Our preservation engine analyzes the structure to provide context for modern developers.

Codice sorgente
original-source
Function ShellAndWait(strCommandLine As String, lWait As Long) As Long
 Dim objProcess As PROCESS_INFORMATION
 Dim objStartup As STARTUPINFO
 Dim lResult As Long
 Dim lExitCode As Long
 
 objStartup.cb = 68
 objStartup.lpReserved = 0
 objStartup.lpDesktop = 0
 objStartup.lpTitle = 0
 objStartup.dwX = 0
 objStartup.dwY = 0
 objStartup.dwXSize = 0
 objStartup.dwYSize = 0
 objStartup.dwXCountChars = 0
 objStartup.dwYCountChars = 0
 objStartup.dwFillAttribute = 0
 objStartup.dwFlags = 0
 objStartup.wShowWindow = 0
 objStartup.cbReserved2 = 0
 objStartup.lpReserved2 = 0
 objStartup.hStdInput = 0
 objStartup.hStdOutput = 0
 objStartup.hStdError = 0
 
 'try and Create the process
 lResult = CreateProcess(0, strCommandLine, 0, 0, 0, 0, 0, 0, objStartup, objProcess)
 If lResult = 0 Then
 ShellAndWait = -1
 Exit Function
 End If
 
 'now, wait on the process
 If lWait <> 0 Then
 lResult = WaitForSingleObject(objProcess.hProcess, lWait)
 If lResult = 258 Then 'did we timeout?
 lResult = TerminateProcess(objProcess.hProcess, -1)
 lResult = WaitForSingleObject(objProcess.hProcess, lWait)
 End If
 End If
 
 'let's get the exit code from the process
 lResult = GetExitCodeProcess(objProcess.hProcess, lExitCode)
 lResult = CloseHandle(objProcess.hProcess)
 lResult = CloseHandle(objProcess.hThread)
 
 ShellAndWait = lExitCode
End Function
Commenti originali (3)
Recuperato da Wayback Machine