Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

Клас для получения информации о системном трее   Найти похожие ветки 

 
brother ©   (2009-01-22 05:00) [0]

в инете нашел вот:
http://articles.org.ru/cn/showdetail.php?cid=7276
спасибо, Author    : Александр (Rouse_) Багель
есть вопросы:
1. // Получаем ID процесса, которому принадлежит найденное окно
 GetWindowThreadProcessId(FSysTrayHandle, &dwProcessID);
зачем &? с ним не компилируется, без него нормально

2. ButtonInfo.dwMask := TBIF_IMAGE or TBIF_TEXT or TBIF_STATE or TBIF_STYLE
         or TBIF_LPARAM or TBIF_COMMAND or TBIF_SIZE or TBIF_BYINDEX;
 в моем CommCtrl, TBIF_BYINDEX нет, заменил на $00000080 (по логике)

3. интересует структура FIconData.Items[I], как я понимаю нигде не используется?
4. и главное: можно ли сделать двойной клик по нужной мне иконке, делая выборку из FIconData.Items[I].szTip? те показать окно программы
Розыч, и другие, помогите...


 
MBo ©   (2009-01-22 09:28) [1]

@dwProcessID

TBIF_BYINDEX            = $80000000;


 
Rouse_ ©   (2009-01-22 17:20) [2]

1. &dwProcessID - на 2007-ой компилиться :)
Вообще код сначала на VC++ писался и только потом перекладывался на Дельфи методом половинного копипаста - видать пропустил :)

2. Вот константы из моего CommCtrl
const
 {$EXTERNALSYM TBBF_LARGE}
 TBBF_LARGE              = $0001;

 {$EXTERNALSYM TB_GETBITMAPFLAGS}
 TB_GETBITMAPFLAGS       = WM_USER + 41;

 {$EXTERNALSYM TBIF_IMAGE}
 TBIF_IMAGE              = $00000001;
 {$EXTERNALSYM TBIF_TEXT}
 TBIF_TEXT               = $00000002;
 {$EXTERNALSYM TBIF_STATE}
 TBIF_STATE              = $00000004;
 {$EXTERNALSYM TBIF_STYLE}
 TBIF_STYLE              = $00000008;
 {$EXTERNALSYM TBIF_LPARAM}
 TBIF_LPARAM             = $00000010;
 {$EXTERNALSYM TBIF_COMMAND}
 TBIF_COMMAND            = $00000020;
 {$EXTERNALSYM TBIF_SIZE}
 TBIF_SIZE               = $00000040;
 {$EXTERNALSYM TBIF_BYINDEX}
 TBIF_BYINDEX            = $80000000;


3. как это нигде не используется? Именно в нее и сохраняются все данные, т.е. это массив рекордов типа TFWSysIconItem

4. можно определить позицию, где расположена иконка, собственно каждая иконка это кнопка в TToolBar, посмотри как это делается в нем. Ну а после определения позиции сгенерируй мышиное событие по этим координатам, ну к примеру как-то так:

var
 TI:TInput;
 MI: TMouseInput;
 P:TPoint;
begin
 GetCursorPos(P);
 MI.dx := P.X;
 MI.dy := P.Y;
 MI.mouseData := 0;
 MI.dwFlags := MOUSEEVENTF_RIGHTDOWN ;
 MI.time := 10;
 TI.mi := MI;
 TI.Itype := INPUT_MOUSE;
 SendInput(1, TI, SizeOf(TInput));
 MI.dwFlags:=MOUSEEVENTF_RIGHTUP;
 TI.mi := MI;
 SendInput(1, TI, SizeOf(TInput));


 
brother ©   (2009-01-26 04:06) [3]

спасибо, буду разбираться



Страницы: 1 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.059 c
15-1266561272
Kerk
2010-02-19 09:34
2010.08.27
Глобальное потепление


15-1263720611
TUser
2010-01-17 12:30
2010.08.27
Книги (самовывоз)


11-1221124245
L`Autour
2008-09-11 13:10
2010.08.27
Общий OnMessage для неск. контролов. Как определить текущий?


2-1273477863
Elena
2010-05-10 11:51
2010.08.27
перенос exe-шника скомпилированный delphi 2009, на комп где delph


2-1269128085
allrussia
2010-03-21 02:34
2010.08.27
Поведение процедуры в потоке