Главная страница
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.053 c
2-1273681750
Baks
2010-05-12 20:29
2010.08.27
Как можно удалить запись из середины нетепизированного файла?


15-1266854887
Kerk
2010-02-22 19:08
2010.08.27
Язык Си и начальное обучение программированию


15-1275251381
Юрий
2010-05-31 00:29
2010.08.27
С днем рождения ! 31 мая 2010 понедельник


8-1204373917
dambo
2008-03-01 15:18
2010.08.27
полигон и текстура


6-1197627723
Palladin
2007-12-14 13:22
2010.08.27
Indy и SSL