Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Получить иконку чужого окна

Delphi , Графика и Игры , ICO

Получить иконку чужого окна

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

{ 
First Start Notepad.exe and run this code: 
Starte zuerst Notepad.exe und fьhre dann diesen Code aus: 
}

 procedure TForm1.Button1Click(Sender: TObject);
 var
   hwindow : THandle;
   H: HIcon;
 begin
   hwindow := FindWindow('notepad',nil);
   H := CopyIcon(GetClassLong(hwindow, GCL_HICON ));
   DrawIcon(Canvas.Handle, 30, 30, H);
 end;

Here is the translation of the text into Russian:

Код написан на Delphi и используется для получения иконки внешнего окна (в этом случае, Notepad.exe) и рисования ее на канвасе формы.

Следующий код работает следующим образом:

  1. Процедура Button1Click вызывается при клике кнопки с текстом "Starte zuerst Notepad.exe und fühe dann diesen Code aus:".
  2. Функция FindWindow используется для поиска окна с заголовком 'notepad'. Эта функция возвращает.handle окна.
  3. Функция GetClassLong используется для получения классового длинного окна, который содержит информацию о классе окна. В этом случае она используется для получения иконки, связанной с классом (GCL_HICON).
  4. Функция CopyIcon используется для копирования иконки из класса.
  5. Наконец, функция DrawIcon используется для рисования иконки на канвасе формы.

Вот улучшенная версия кода:

procedure TForm1.Button1Click(Sender: TObject);
var
  hWindow: THandle;
  H: HICON;
begin
   // Найти окно Notepad
  hWindow := FindWindow(nil, 'notepad');

  if hWindow <> 0 then
  begin
     // Получить иконку окна Notepad
    H := CopyIcon(GetClassLong(hWindow, GCL_HICON));

     // Рисовать иконку на канвасе
    Canvas.Draw(30, 30, IconFromHandle(H));

     // Освободить ресурсы иконки
    DestroyIcon(H);
  end;
end;

В этой версии кода добавлена проверка ошибок для обеспечения того, что функция FindWindow нашла валидное окно перед попыткой получить его иконку. Также освобождаются ресурсы иконки с помощью функции DestroyIcon, чтобы предотвратить утечку памяти.

Примечание: Функция DrawIcon не является частью стандартной библиотеки Delphi и может не работать как ожидалось. Вместо этого можно использовать Canvas.Draw:

В статье описывается способ получения иконки другого окна в приложении Delphi с помощью функции FindWindow для поиска окна, а затем CopyIcon для копирования его иконки.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: ICO ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-06-02 10:20:12
2024-07-13 05:28:17/0.0071661472320557/2