Главная страница
    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.074 c
3-1239500260
andirock2112
2009-04-12 05:37
2010.08.27
Связь многие ко многим


2-1269419918
oleg1963lora
2010-03-24 11:38
2010.08.27
Время вставки строк. Нужна идея!


4-1235053242
Franzy
2009-02-19 17:20
2010.08.27
Нужен пример CreateFileMapping()


15-1267711258
xayam
2010-03-04 17:00
2010.08.27
Гений места


2-1267530370
Fr
2010-03-02 14:46
2010.08.27
компоненты в run-time





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский