Microsoft KB Archive/108228

From BetaArchive Wiki

HOWTO: Replace IsTask() with GetExitCodeProcess()


The information in this article applies to:

  • Microsoft Win32 Application Programming Interface (API), used with:
    • Microsoft Windows NT Server versions 3.5, 3.51
    • Microsoft Windows NT Workstation versions 3.5, 3.51
    • Microsoft Windows 95

In Windows 3.1, the application programming interface (API) IsTask() can be used to determine whether a process is still running or whether it has terminated. As the help file indicates, this function is obsolete in the Win32 API.

To get this functionality through the Win32 API, use the API GetExitCodeProcess(). This function takes the handle as the first parameter and returns the exit code or STILL_ACTIVE in the second parameter:

   BOOL GetExitCodeProcess(hProcess, lpdwExitCode) 

   HANDLE hProcess;
   LPDWORD lpdwExitCode; 

As an alternative, you can also use WaitForSingleObject(). Pass the process handle as the first parameter and a timeout value for the second parameter:

   DWORD WaitForSingleObject(hObject, dwTimeout) 

   HANDLE hObject;
   DWORD dwTimeout; 

The process handle is signaled when the process terminates. Pass in 0 (zero) for the timeout if you would like to poll or start another thread to wait with an INFINITE timeout value.


Additional query words: 3.10 3.50 4.00

Keywords :
Issue type : kbhowto
Technology : kbAudDeveloper kbWin32sSearch kbWin32API

Last Reviewed: December 16, 2000
© 2001 Microsoft Corporation. All rights reserved. Terms of Use.