Question and Answer Database FAQ1789C.txt Detecting how a console-mode program was launched Category :Windows API Platform :All Product :C++Builder 1.x Question: How can I tell if a console-mode application was launched from Explorer or from a DOS box? Answer: The following mechanism depends on officially undocumented behavior which is not guaranteed to work under future versions of Windows, but will tell you whether or not the program was launched from Explorer or not: #include#include bool QueryLaunchedFromExplorer() { HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_SCREEN_BUFFER_INFO info; GetConsoleScreenBuffer(hConsole, &info); bool explorer = ( (info.dwCursorPosition.X==0) && (info.dwCursorPosition.Y==0) ); if ( (info.dwSize.X<=0) || (info.dwSize.Y<=0) ) { explorer = false; } return explorer; } int main() { bool explorer = QueryLaunchedFromExplorer(); if (explorer) { cout << "Launched from Explorer" << endl; cin.get(); } else { cout << "Launched from a DosBox" << endl; cin.get(); } return true; } 7/2/98 10:32:32 AM
Last Modified: 01-SEP-99