Як отримати дескриптор консольного вікна (hwnd) - все про it і програмуванні

Іноді необхідно проводити які-небудь дії з вікном, пов'язаним з консольним додатком. Win32 API не надано прямих методів отримання дескриптора вікна, пов'язаного з консольним додатком. Однак, дескрітор (handle) вікна можна отримати викликавши FindWindow (). Ця функція шукає дескриптор вікна, заснований на імені класу або імені вікна.

Щоб визначити поточний заголовок консолі, викликається GetConsoleTitle (). Потім цей заголовок вказується в функції FindWindow ().

Так як кілька віконець можуть мати однаковий заголовок, то Вам прийдеться змінити заголовок поточного консольного вікна на унікальний. Це допоможе захиститися від отримання неправильного дескриптора вікна. Для зміни заголовка поточного консольного вікна використовується SetConsoleTitle (). Ось як це робиться:

  1. Викликаємо GetConsoleTitle () щоб зберегти заголовок поточного консольного вікна.
  • Викликаємо SetConsoleTitle () щоб змінити заголовок на унікальний (неповторні).
  • Викликаємо Sleep (40) щоб дати час заголовку змінитися.
  • Викликаємо FindWindow (NULL, uniquetitle), для отримання HWND. Цей запит поверне HWND або NULL в разі невдачі.
  • Викликаємо SetConsoleTitle () зі значенням, отриманим за крок 1, для відновлення початкового заголовка вікна.

    Необхідно перевірити отриманий HWND. Наприклад, можна перевірити, чи відповідає отриманий HWND пов'язаних з поточною діяльністю, викликавши для нього GetWindowText () з цим HWND і порівнявши його з результатом, отриманим за допомогою GetConsoleTitle ().

    Немає гарантії, що отриманий HWND підійде для всіх можливих операцій з дескриптором вікна.

    приклад коду

    Наступна функція повертає дескриптор поточного вікна консольного застосування (HWND). Якщо функція виконана успішно, то повернутий значення буде дескриптором консольного вікна, інакше, вразі помилки буде повернуто NULL. Для стислості, деякі перевірки можливих помилок прибрані.

    Мета цієї статті - познайомити ближче користувачів з bash, розповісти про синтаксис, основні прийоми та фішки мови, для того щоб навіть звичайний користувач зміг швиденько написати простий скрипт для виконання щоденної (-недельной, -місячний) рутинної роботи або, скажімо, "на коліні "навал.

    Про всяк випадок поясню Новомосковсктелям, якщо вони не в темі, що таке "дистрибутиви Linux". Linux сам по собі - це чиста система, ядро. До неї існує величезна кількість програм від сторонніх розробників. І є різні версії ядра. Так ось, багато компаній або просто групи людей, спільнота.

    Справді, навіщо файлового менеджера багато функцій? Вірніше, навіщо йому функції, відмінні від прямого призначення продукту? Якщо ми перевернемо назад кілька сторінок історії, то виявимо там молодої людини -Судячи з усього, це студент - який сидить перед 14-дюймовим, як тоді говорили, "V.