Link to home
Start Free TrialLog in
Avatar of unmeshv
unmeshv

asked on

Starting a 16-bit process on Win95

I want to start a 16-bit process froma 32-bit application and then wait for that process to finish.
On NT it works perfectly as I am using CreateProcess with a CREATE_SEPARATE_WOW_VDM flag for process creation. However this flag is not valid on 95.
Followed by this I call WaitForSingleObject in order to wait for the 16-bit process to finish.
Now, if I dont ise CREATE_SEPARATE_WOW_VDM on NT this WaitForSingleObject returns immidiaely as the new process is spawned in 16-bit shared VDM.
So this problem is solved by CRAETE_SEPARATE_WOW_VDM on NT.

I will describe the scenario on win 95 in more detail.

1. I call CreateProcess to run a batch file (16-bit app)
2. This execution starts another process 'WINOLDAP'.
3. Even after all the execution in the batch file is complete this process does not shut down.
4. Because of this I do not get response for WaitForSingleObject which finally terminates on a time-out signal.

So how do I get rid of this WINOLDAP?

Thnx
Avatar of unmeshv
unmeshv

ASKER

Edited text of question
I think that the process in Win95 is pretty much the same as in NT. I don't have any problems using WaitForSingleObject under 95.
Avatar of unmeshv

ASKER

Edited text of question
Avatar of unmeshv

ASKER

Adjusted points to 100
Do you really need to call a batch file?
If no, WaitForSingleObject will work for you.
If yes, write a small program that executes COMMAND.COM /C <batch-file-name> and wait for its termination.
Avatar of unmeshv

ASKER

Thanks. That olves the problem. I have to use batch file. So the second option wotks correctly. Thanks again.
ASKER CERTIFIED SOLUTION
Avatar of Bonev
Bonev

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial