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

Вниз

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

 
leonidus ©   (2007-08-01 11:10) [0]

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


 
DVM ©   (2007-08-01 11:27) [1]


> Подскажите как это сделать?

Глобальная ловушка на мышь. Или на сообщения окна панели задач.


 
leonidus ©   (2007-08-01 15:24) [2]

а какое сообщение панель задач отправляет при наведении курсора?


 
DVM ©   (2007-08-01 16:20) [3]


> а какое сообщение панель задач отправляет при наведении
> курсора?

Никакого. Это окну панели задач приходит WM_MOUSEMOVE и прочие


 
WASM   (2007-08-01 19:59) [4]

Может так или я невьехал в вопрос

procedure TForm1.Timer1Timer(Sender: TObject);
var
 Wnd: HWND;
 WndClass: Array [0..256] of Char;
begin
 Wnd:= WindowFromPoint(Mouse.CursorPos);
 GetClassName(Wnd, WndClass, SizeOf(WndClass));
 if WndClass = "ToolbarWindow32" then
   Caption:= "Мышка над треем"
 else
   Caption:= "Мышка где то есчё"
end;


 
WASM   (2007-08-01 20:01) [5]

То есть вот так

if WndClass = "TrayNotifyWnd" then


 
WASM   (2007-08-01 20:04) [6]


> to leonidus


Уважаемый а это не вы случаем словари пишите типа TranslateIt?


 
leonidus ©   (2007-08-01 23:36) [7]

>WASM спасибо за ответ
На счет TranslateIt!, с чем связан ваш вопрос?


 
WASM   (2007-08-02 10:32) [8]


> leonidus ©   (01.08.07 23:36) [7]


Если автор программы TranslateIt это вы, мне казалось что для вас решить проблемму определения нахождения курсора мышки над треем не состовляет особых хлопот, а вопрос собственно связан вот с чем, как мне получить строчку текста по линии, а не отдельное слово из под курсора мышки в Internet Explorer, вот код

function TForm1.ExtractWordFromIE: string;
var
 ptScreen: TPoint;
 ppacc: IAccessible;
 pvarChild: Variant;
 SP: IServiceProvider;
 HE: IHTMLElement;
 TR: IHTMLTxtRange;
 HD: IHTMLDocument2;
 NW3: IHTMLWindow3;
 NW2: IHTMLWindow2;
 childWND: HWND;
 lrHD: Cardinal;
 IEHwnd:Cardinal;
 IEHwndClass: array [0..256] of Char;
begin
 Result:= "";
 try
   if GetCursorPos(ptScreen) then
   begin
     IEHwnd:= WindowFromPoint(ptScreen);
     GetClassName(IEHwnd, IEHwndClass, SizeOf(IEHwndClass));
     if Succeeded(AccessibleObjectFromPoint(ptScreen, ppacc, pvarChild)) then
     begin
       if Succeeded(ppacc.QueryInterface(IServiceProvider, SP)) then
         SP.QueryService(IHTMLElement, IHTMLElement, HE);
       if HE <> nil then
         HD:= HE.document as IHTMLDocument2;
     end;
     TR:= (HD.body as IHTMLBodyElement).createTextRange;
   NW2 := HD.parentWindow;
   if (NW2 <> nil) and Succeeded(NW2.QueryInterface(IHTMLWindow3, NW3)) then
   begin
     ptScreen.X:= ptScreen.X  - NW3.screenLeft;
     ptScreen.Y:= ptScreen.Y  - NW3.screenTop;
   end;
   TR.moveToPoint(ptScreen.X, ptScreen.Y);
   TR.expand("word");
   Result:= TR.Text;
 end;
 except
   //
 end;
end;



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

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

Наверх




Память: 0.49 MB
Время: 0.039 c
15-1203191240
LeshaM
2008-02-16 22:47
2008.03.30
Цифровая подпись в PDF


2-1204570121
redlord
2008-03-03 21:48
2008.03.30
как добавить строку в книгу ексель


2-1204445419
..::KraN::..
2008-03-02 11:10
2008.03.30
TOpenDialog


15-1202977911
pasha_golub
2008-02-14 11:31
2008.03.30
Скрипт консольный


2-1204617905
Alex_C
2008-03-04 11:05
2008.03.30
Вызов события OnClose дочерних форм