Форум: "WinAPI";
Текущий архив: 2008.03.30;
Скачать: [xml.tar.bz2];
ВнизОпределение факта нахождения курсора над треем Найти похожие ветки
← →
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 вся ветка
Форум: "WinAPI";
Текущий архив: 2008.03.30;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.038 c