How to launch exe under W2K & W98 other tan with CreateProcess API or Shell func ?
I have an application (EXE file) that perfectly works under NT when I launch it with the API CreateProcess :
Public Function ExecCmd(cmdline As String, intWindowDisplay As Integer)
'Public Function ExecCmd(cmdline As String)
Dim proc As PROCESS_INFORMATION
Dim start As STARTUPINFO
Dim lReturndVal As Long
' Initialize the STARTUPINFO structure:
start.cb = Len(start)
start.dwFlags = start.dwFlags + STARTF_USESHOWWINDOW ' 1 = Bit positon of STARTF_USESHOWWINDOW
start.wShowWindow = intWindowDisplay ' Gives the way the window is displayed
' Start the shelled application:
lReturndVal = CreateProcessA(vbNullString, cmdline, 0&, 0&, 1&, NORMAL_PRIORITY_CLASS, 0&, _
vbNullString, start, proc)
' Wait for the shelled application to finish:
lReturndVal = WaitForSingleObject(proc.hProcess, INFINITE)
Call GetExitCodeProcess(proc.hProcess, lReturndVal)
Call CloseHandle(proc.hThread)
Call CloseHandle(proc.hProcess)
ExecCmd = lReturndVal
End Function
When I execute the same function under W2K or W98, the EXE does not work as it should.
Nevetheless, when I launch the EXE in W2K or W98 command line (Execute operation in startup menu), the EXE works properly !
Where could be the problem ?
Is there something to modify in the Function above ?
Thank you all for your answers.
she
WaitForSingleObject(proc.hProcess, INFINITE)
I have a question about CreateProcess and how to use it properly.
Currently I am starting an executable that constantly runs. I receive the process handle, but what do I do with it. Does WaitForSingleObject function tell us when the application is completely started? What is this function used for? From what I see, it provides us with the information to kill threads after the program is executing. Then we use the process info to kill any threads that started the app, yet does not kill the app from running.
I am new to the API functions, I use them but not sure what the idea behind all this is.
I appreciate your help.
:rolleyes: