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
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