Q

How can we work around Win2k not having a "warn if still active" option to uncheck so we can shut do

We have an application that in some processes needs to spawn another task via the shell command. When these shelled

tasks happen to be DOS applications, our software will decide when it is time to shut them down via the SendMessage() API call and the WM_CLOSE transaction. This works fine under Win95, Win98, WinME as long as the DOS window property "warn if still active" is unchecked.

My problem is with Win2000. Its command prompt window property page doesn't have a "warn if still active" option to uncheck and so we are unable to shut it down programmatically.

Is there a work around, another API call, or technique for one application to programmatically shut down a command prompt window?
What an interesting dilemma. After poking around a bit, I'm not really sure there is a clean way to do it. The best piece of advice came from an article on the Microsoft KnowledgeBase, "HOWTO: Terminate an Application "Cleanly" in Win32", (http://support.microsoft.com/default.aspx?scid=kb;EN-US;q178893). Since you control the startup of those DOS applications you can start them in their own copies of NTDVM.EXE, the NT DOS Virtual Machine, where all 16-bit applications run. When it's time to kill the app, you can probably just kill that specific instance of NTVDM.EXE you spawned with TerminateProcess. It's not pretty to call TerminateProcess, but it will work!

This was first published in December 2001

Dig deeper on Enterprise Infrastructure Management

Pro+

Features

Enjoy the benefits of Pro+ membership, learn more and join.

Have a question for an expert?

Please add a title for your question

Get answers from a TechTarget expert on whatever's puzzling you.

You will be able to add details on the next page.

0 comments

Oldest 

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to:

SearchServerVirtualization

SearchCloudComputing

SearchExchange

SearchSQLServer

SearchWinIT

SearchEnterpriseDesktop

SearchVirtualDesktop

Close