PRB: Shell Statement May Not Return Task Handle Immediately (147671)



The information in this article applies to:

  • Microsoft Visual Basic Professional Edition, 16-bit, for Windows 4.0
  • Microsoft Visual Basic Enterprise Edition, 16-bit, for Windows 4.0

This article was previously published under Q147671

SYMPTOMS

The Shell function returns a task handle to the application it starts. On slow machines, it has been reported that the task handle may not be returned immediately. This can cause problems if the code immediately after the call to the Shell function assumes that the variable used to hold the return value will be valid. The code will work fine when it is stepped through in the design environment if the pause between steps is of sufficient length to allow the handle to be returned and the value of the variable to be valid.

WORKAROUND

To work around this problem, simply wait until the task handle is returned to the variable used to hold the Shell function's return value. This can be accomplished with a few lines of code, like this:
   x = 0
   x = Shell("MY.exe")
   Do While x = 0
      DoEvents
   Loop
				

Modification Type:MinorLast Reviewed:1/9/2003
Keywords:kbprb KB147671