Удалить окно по хендлу - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Пытаюсь удалить окно.
int main() {
 
HWND w;
 
w = FindWindow(NULL,"Untitled - Notepad");
DestroyWindow(w);
system("PAUSE");

}
Получил хэндл,тут всё норм,но при попытке уничтожить окно функция возвращает ноль,т.е. фолс.В чём причина ? Также хотелось бы узнать,как проще всего через API получить хендлы любого окна,к примеру,окна qip-а,msn или internet explorer.В моём варианте слишком длинное имя заголовка получается,где оч легко можно ошибиться. ЗЫ: Также хотелось бы увидеть пример,где передаются произвольные символы окну,скажем,окну qip или блокноту).Эт была моя маленькая задумка... )

Решение задачи: «Удалить окно по хендлу»

textual
Листинг программы
#include <windows.h>
#include <stdio.h>
int main() {
 
HWND w;
 
printf ("w= %x\n", w = FindWindow(NULL,"C:\\WINDOWS\\system32\\cmd.exe") );
SendMessage (w, WM_CLOSE, 0, 0);
system("PAUSE");
 
 
}

Объяснение кода листинга программы

В этом коде:

  1. w объявлен как HWND, что является дескриптором окна в операционной системе Windows.
  2. FindWindow(NULL,C:\WINDOWS\system32\cmd.exe) используется для поиска окна с заданным заголовком. Здесь C:\\WINDOWS\\system32\\cmd.exe это заголовок окна, которое мы ищем.
  3. SendMessage(w, WM_CLOSE, 0, 0) используется для отправки сообщения закрытия окна с дескриптором w.
  4. system(PAUSE) используется для приостановки выполнения программы до тех пор, пока пользователь не нажмет любую клавишу. Это обычно используется для предотвращения закрытия программы сразу после выполнения. Следует отметить, что использование FindWindow и SendMessage может представлять определенные риски безопасности, если они используются неправильно.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.4 из 5
Похожие ответы