Как да се справя с конзолния прозорец заявление

Това не е често, но понякога тя все още може да се наложи да се справя с конзолния прозорец приложение. Windows API не предоставя никаква специална функция да изпълнява тази задача, но можете да намерите заобиколни за решаването му.

Основната идея на този метод е описан в статията Q124103 от базата знания на Microsoft. Това е да се замени името на конзолата за уникален низ от знаци, за да търсите дръжката на прозореца чрез FindWindow (), а след това се върнете на прозореца по-рано. Освен това има и кода получаване уникален низ на базата на комбинация от текущото време и процес ID.

Кодът по-долу използва малко по-различен метод за получаване на уникален низ за името на конзолата, която, по мое мнение, по нищо не отстъпва на метода от Microsoft, тъй като използва РЪКОВОДСТВО като низ - са гарантирани уникален идентификатор. Можете да използвате всеки от тези опции, както и да разработи собствена методология.

Идеята зад този метод е да се изброят всички отворени прозорци, използвайки EnumWindows. и след това изберете прозореца, създадена от текущата нишка - тя ще бъде в конзолен прозорец. Разбира се, за прехвърлянето на много по-добре, че ще се побере функция EnumThreadWindows. но по някаква причина тя отказва да се изброят конзолния прозорец.

ЗАБЕЛЕЖКА
Разбира се, ще работи при условие на този метод, че вашата конзола прилагане не създава допълнителни прозорци графични най-високо ниво (рядък случай, но понякога това се случва). Ако все още се създават други прозорци, можете да въведете допълнителни проверки условия, които otsekut всички ненужни прозорци с изключение на конзолата. Що за изпитване може да се изисква, в зависимост от конкретното приложение. Друг вариант - използване на метода, описан в предишния раздел.