Skip to main content

CreateProcess() - Waiting for CreateProcess to finish.

CreateProcess() :
 
Creates a new process and its primary thread. The new process runs in the security context of the calling process.
If the calling process is impersonating another user, the new process uses the token for the calling process, not the impersonation token. To run the new process in the security context of the user represented by the impersonation token, use the CreateProcessAsUser or CreateProcessWithLogonW function.
Primary focus of this post is going to be waiting for CreateProcess() to finish. I have seen in many situations developer wants to start a external binary and this task can be accomplished by using CreateProcess() API. What happens after starting this process ?  We will not have control over this newly running application/binary, that is expected however at times we want to wait till it completes it execution. 
How do achieve that ? It is not rocket science it in fact is pretty simple. 
// Create the process
PROCESS_INFORMATION pi;
CreateProcess(..., &pi);

// Wait for it to finish
WaitForSingleObject(pi.hProcess, INFINITE);
Above statement keeps current process in suspension till CreateProcess binary is done with its task.

Comments

Popular posts from this blog

Android ANR Time, UI Thread

Useful Android Performance / Stability debugging info  1. ANR Waiting times: Performing heavy I/O , Network access or orher heavy operations on UI thread ?? A BIG NO NO ..you are inviting ANR.   No response to an input event (such as key press or screen touch events) within 5 seconds. A  BroadcastReceiver  hasn't finished executing within 10 seconds.

Andoird Key codes , adb keyevent

Useful Android Keyevents inputs: Some time it is extremely useful to send keyevent via adb for automation and other purposes. #adb shell  #input usage: input [text|keyevent] input text input keyevent adb shell input text "HELLO" LIST OF KEY CODES:  1 --> "KEYCODE_MENU" 3 --> "KEYCODE_HOME" 4 --> "KEYCODE_BACK" 19 --> "KEYCODE_DPAD_UP" 20 --> "KEYCODE_DPAD_DOWN" 21 --> "KEYCODE_DPAD_LEFT" 22 --> "KEYCODE_DPAD_RIGHT" 23 --> "KEYCODE_DPAD_CENTER" 24 --> "KEYCODE_VOLUME_UP" 25 --> "KEYCODE_VOLUME_DOWN" 26 --> "KEYCODE_POWER" 27 --> "KEYCODE_CAMERA" 28 --> "KEYCODE_CLEAR" 55 --> "KEYCODE_COMMA" 56 --> "KEYCODE_PERIOD" 57 --> "KEYCODE_ALT_LEFT" 58 --> "KEYCODE_ALT_RIGHT" 59 --> "KEYCODE_SHIFT_LEFT" 60...

What is the Current Directory in Windows CE & Windows Mobile ?

Lately i encountered  a situation where i had to find the current directory from where my application is running and all my config files reside. Question is "How do I find the current directory?" on Windows CE/Mobile devices. Desktop / PC it is just piece of cake but Windows CE / Mobile devices don't have a concept of a current directory.  Which means all pats are absolute and there is no concept called relative path. Due to lack of relative paths most of the files are loaded to the "Windows" directory and that is how Windows directory is crowded. Alternatively you can hard code directory path and insist user to load files always there. But i hate to hard code values or copy files to Windows directory.  So this has triggered to find a solution to identify my current directory. Since there is no concept of a current directory on a Windows CE / Windows Mobile device how would one locate a resource for which only a relative path is known?  That is what following c...