Вы можете использовать методы GetConsoleWindow , GetWindowThreadProcessId и GetCurrentProcessId .
1) Сначала вы должны получить текущий дескриптор окна консоли, используя функцию GetConsoleWindow
.
2) Затем вы получите владельца процесса дескриптора окна консоли.
3) Наконец, вы сравниваете возвращенный PID с PID вашего приложения.
Проверьте этот образец (VS C ++)
#include "stdafx.h"
#include <iostream>
using namespace std;
#if _WIN32_WINNT < 0x0500
#undef _WIN32_WINNT
#define _WIN32_WINNT 0x0500
#endif
#include <windows.h>
#include "Wincon.h"
int _tmain(int argc, _TCHAR* argv[])
{
HWND consoleWnd = GetConsoleWindow();
DWORD dwProcessId;
GetWindowThreadProcessId(consoleWnd, &dwProcessId);
if (GetCurrentProcessId()==dwProcessId)
{
cout << "I have my own console, press enter to exit" << endl;
cin.get();
}
else
{
cout << "This Console is not mine, good bye" << endl;
}
return 0;
}