Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.058 c
15-1275455248
ZeroDivide
2010-06-02 09:07
2010.08.27
Как работают подобные устройства?


2-1275466490
tamako
2010-06-02 12:14
2010.08.27
как открыть текст из поля Memo в Worde?


15-1267626055
Копир
2010-03-03 17:20
2010.08.27
Как удалось Архимеду сжечь корабли?


15-1266428635
Kerk
2010-02-17 20:43
2010.08.27
Сайт с рассказами ветеранов о войне (видео)


2-1269848151
bobby
2010-03-29 11:35
2010.08.27
Относительные пути Windows





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский