Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> надо программно нажать на чужую иконку в трее, Помогите понять ошибку 
V
    Опции темы
sw04
  Дата 15.7.2007, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 372
Регистрация: 22.1.2007
Где: Ufa

Репутация: нет
Всего: 18



Код

procedure TSnifferThread.Execute ;

var
  I: Integer;
begin
 while not Terminated  do
  Sleep(5000);
  Form21.ListView1.Clear;
  Form21.SysTray.UpdateInfo;
  Form21.ListView1.SmallImages := Form21.SysTray.ImageList;
  for I := 0 to Form21.SysTray.IconCount - 1 do
  begin
    with Form21.ListView1.Items.Add do
    begin
      Caption := GetStateString(Form21.SysTray.IconItem[I].dwState);
      ImageIndex := Form21.SysTray.IconItem[I].iImage;
      SubItems.Add(Form21.SysTray.IconItem[I].szTip);

      if (Form21.SysTray.IconItem[I].szTip = 'Icon') then
      begin
         SendMessage(Form21.SysTray.IconItem[I].hWnd, wm_LButtonDown, 0, 0);
         SendMessage(Form21.SysTray.IconItem[I].hWnd, WM_LButtonUP, 1, 1);
      end;

      SubItems.Add(Form21.SysTray.IconItem[I].szAppPath);

 end;
    end;


  end;

честно не знаю , как нажать на иконку. тыкался, чет не получилось.
знаю, что ошибка в sendmessage, но в  чем именно не пойму.


--------------------
<удалено администрацией>
PM   Вверх
MetalFan
Дата 15.7.2007, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 16
Всего: 128



простите, но что-то черезчур бредово код выглядит...
зы. если этот код выполняется в потоке, то КАКОГО Х идет обращение к VCL контролам???



--------------------
There are always someone smarter than you...
PM MAIL   Вверх
sw04
Дата 15.7.2007, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 372
Регистрация: 22.1.2007
Где: Ufa

Репутация: нет
Всего: 18



Цитата(MetalFan @  16.7.2007,  01:52 Найти цитируемый пост)
если этот код выполняется в потоке, то КАКОГО Х идет обращение к VCL контролам???

В vcl выводится только ради контроля.
Естественно в конечном результате останется только последовательность действий, которая останется за кадром.
А так легко контролировать все действия.
Цитата(MetalFan @  16.7.2007,  01:52 Найти цитируемый пост)
простите, но что-то черезчур бредово код выглядит...

Что бредового?
пересматриваю все иконки, если нашел свою(из другого приложения), то нажимаю на неё.


--------------------
<удалено администрацией>
PM   Вверх
MetalFan
Дата 16.7.2007, 07:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 16
Всего: 128



Цитата(sw04 @  15.7.2007,  22:56 Найти цитируемый пост)
Естественно в конечном результате

так давай конечный, очищенный от бреда, результат.
Цитата(sw04 @  15.7.2007,  22:56 Найти цитируемый пост)
если нашел свою(из другого приложения)

и здесь по-подробнее... что сие фразы означают?


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
sw04
Дата 16.7.2007, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 372
Регистрация: 22.1.2007
Где: Ufa

Репутация: нет
Всего: 18



Код

procedure TSnifferThread.Execute ;
var
  I: Integer;
begin
 while not Terminated  do
  Sleep(5000);
  SysTray.UpdateInfo;
  for I := 0 to SysTray.IconCount - 1 do
    begin
      if (SysTray.IconItem[I].szTip = 'Icon') then
      begin
         SendMessage(Form21.SysTray.IconItem[I].hWnd, wm_LButtonDown, 0, 0);
         SendMessage(Form21.SysTray.IconItem[I].hWnd, WM_LButtonUP, 1, 1);
      end;
    end;
end;

Просматриваем все иконки в tray с промежутком 5 сек.
Если нашли иконку с hint = 'Icon'(это моя иконка), на неё надо нажать.
Вопрос как нажать? или надо получить координаты иконки - опять же вопрос как?
зы вопрос всего один. как нажать smile

Это сообщение отредактировал(а) sw04 - 16.7.2007, 13:29


--------------------
<удалено администрацией>
PM   Вверх
MetalFan
Дата 16.7.2007, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 16
Всего: 128



Цитата(sw04 @  16.7.2007,  09:19 Найти цитируемый пост)
Просматриваем все иконки в tray

ЧТО ЕСТЬ идентификаторы Form21 и SysTray?
фсе, больше в телепатов не играю. надоело


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
sw04
Дата 16.7.2007, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 372
Регистрация: 22.1.2007
Где: Ufa

Репутация: нет
Всего: 18



Код

type
//Класс потока сниффера
TSnifferThread = class(TThread)
  private
  protected
      procedure Execute; override;
  public
  end;

SysTray: TFWSysTrayInfo;

.... 

procedure TSnifferThread.Execute ;
var
  I: Integer;
begin
 while not Terminated  do
  Sleep(5000);
  SysTray.UpdateInfo;
  for I := 0 to SysTray.IconCount - 1 do
    begin
      if (SysTray.IconItem[I].szTip = 'Icon') then
      begin
         SendMessage(SysTray.IconItem[I].hWnd, wm_LButtonDown, 0, 0);
         SendMessage(SysTray.IconItem[I].hWnd, WM_LButtonUP, 1, 1);
      end;
    end;
end;



--------------------
<удалено администрацией>
PM   Вверх
MetalFan
Дата 16.7.2007, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 16
Всего: 128



круто)
так не приоткроет ли любезный автор полог тайны, идеж у него создается этот SysTray и что это за компонент такой?
в рамках какого процесса работает поток? и зачем было выносить код в поток


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
sw04
Дата 16.7.2007, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 372
Регистрация: 22.1.2007
Где: Ufa

Репутация: нет
Всего: 18



Цитата(MetalFan @  16.7.2007,  19:01 Найти цитируемый пост)
так не приоткроет ли любезный автор полог тайны, идеж у него создается этот SysTray и что это за компонент такой?

http://rouse.drkb.ru/winapi.php#fwsystrayinfo

Цитата(MetalFan @  16.7.2007,  19:01 Найти цитируемый пост)
в рамках какого процесса работает поток? и зачем было выносить код в поток 
чтобы повторять операцию несколько раз.
можно на таймерах, но получается больше памяти жрет.

Добавлено через 1 минуту и 7 секунд
Пардон, что так допытываетесь данных. Не знал, что TFWSysTrayInfo нестандартная.


--------------------
<удалено администрацией>
PM   Вверх
MetalFan
Дата 16.7.2007, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 16
Всего: 128



Цитата(sw04 @  16.7.2007,  14:44 Найти цитируемый пост)
 while not Terminated  do
  Sleep(5000);

далее этих строк не продвинется выполнение кода, ибо это практически бесконечный цикл есть.

Добавлено @ 21:29
так же не вижу я создания компонента хитрого в пределах потока, а использование созданного вне его не есть мысль благостная

Добавлено @ 21:32
з.ы. так же сказать хочу, что не открывается у меня ссылка, даная автором....

Добавлено @ 21:42
а если серьезно - создай тестовое приложение и приложить не забудь компонент этот чудный.
может на досуге посмотрю

Это сообщение отредактировал(а) MetalFan - 16.7.2007, 21:42


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Virtuals
Дата 24.7.2007, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 476
Регистрация: 27.11.2006

Репутация: 4
Всего: 11



postmessage(Wn, BM_CLICK,0,0);

без комментариев, у меня все кнопки жмет
PM MAIL ICQ   Вверх
sw04
Дата 25.7.2007, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 372
Регистрация: 22.1.2007
Где: Ufa

Репутация: нет
Всего: 18



Цитата(Virtuals @  24.7.2007,  13:08 Найти цитируемый пост)
без комментариев, у меня все кнопки жмет 

иконка не кнопка.
не жмет.
уже переделал проект без использования сторонних продуктов.
думаю, как выдернуть из списка необходимый.



--------------------
<удалено администрацией>
PM   Вверх
Rouse_
Дата 27.7.2007, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 469
Регистрация: 23.4.2005

Репутация: 18
Всего: 29



Цитата(sw04 @  25.7.2007,  23:31 Найти цитируемый пост)
иконка не кнопка.

Иконка в трее - это именно кнопка smile Сам трей - не более чем обычный TToolBar. Методы применимые к тулбару будут работать и с системным треем...


--------------------
 Vae Victis
(Горе побежденным (лат.))
Демо с открытым кодом: http://rouse.drkb.ru 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0540 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.