Сделай сам: IE и Delphi – вместе веселее! | Программирование на Delphi и не только

Почитайте!

Нас читают

Статьи о программировании и не только

Mail.Ru

Rambler's Top100

Programming Blogs - BlogCatalog Blog Directory

Сделай сам: IE и Delphi – вместе веселее!

28.01.2008 от Иван Ширко

Страница: 1 2 3 4 5 6

dwMessage – сообщение, которое мы посылаем Панели задач, может принимать следующие значения: NIM_ADD – добавить новую иконку, NIM_DELETE – удалить иконку, NIM_MODIFY – изменить иконку.
lpData – указатель на структуру NotifyIconData, которая состоит из следующих полей:
cbSize: DWORD;
Wnd: HWND;
uID: UINT;
uFlags: UINT;
uCallbackMessage: UINT;
hIcon: HICON;
szTip: array [0..63] of AnsiChar;
Пояснения:
cbSize – размер структуры;
Wnd – идентификатор окна, которое будет получать сообщения, ассоциированные с иконкой;
uID – идентификатор иконки, который мы сами ей назначаем;
uFlags – комбинация из трёх флагов, которая обозначает, какие поля структуры мы хотим заполнить: NIF_ICON (хотим заполнить поле hIcon), NIF_MESSAGE (поле uCallbackMessage), NIF_TIP (поле szTip).
uCallbackMessage – определяемый нами идентификатор сообщения, ассоциированного с иконкой;
hIcon – идентификатор иконки;
szTip – текст подсказки к иконке, которая появляется при наведении на неё курсора мышки.
Пример использования функции Shell_NotifyIcon вы найдёте в коде нашей сегодняшней программы.Настала пора приступить к созданию программы. Она будет выполнять две полезные функции:
1) Закрытие всех окон IE;
2) Переход "Вперёд\Назад" в коллекции некоторых объектов. Всё дело в том, что часто при просмотре какого-либо форума или галереи картинок, ссылки имеют вид "http://anysite/forum.php?page=2". Т.е мы находимся на второй странице форума. Если мы заменим цифру на '1', то попадём на предыдущую страницу, на '3' – на следующую. Примерно по такому принципу мы организуем Переход "Вперёд\Назад".
Закрытие всех окон IE
Предлагаю два способа реализации функции закрытия всех окон IE.
Способ I
Последовательно ищем окна Internet Explorer'a и закрываем их:
procedure CloseAllIE_1;
var
  ie: HWND;
begin
  //ищем окно IE
  ie := FindWindow('IEFrame', nil);
  //пока найдено окно IE…
  while (ie<>0) do
  begin
    //…закрываем его
    postmessage(ie, WM_CLOSE, 0, 0);
    //ищем следующее
    ie := FindWindow('IEFrame', nil);
  end;
end;
Способ II
Перебираем все родительские окна в системе и, если увидели окно IE, то закрываем его. Таким образом, мы совершаем только один проход по окнам, а значит, работает этот способ намного быстрее предыдущего.
procedure CloseAllIE_2;
//эта функция будет применяться к каждому окну
functionCloseIE (Wnd: HWND): boolean; stdcall;

Страница: 1 2 3 4 5 6

Рубрики: Delphi, Сделай сам |

Один комментарий

  1. Око пишет:

    Что-то так не выходит ничего

Оставить комментарий

Заметьте: Включена проверка комментариев. Нет смысла повторно отправлять комментарий.