Вверх ↑
Разработчик
Ответов: 26068
Рейтинг: 2121
#1: 2017-04-24 19:44:13 ЛС | профиль | цитата
Dimka писал(а):
а если мне нужно найти один из нескольких установленных браузеров

У каждого браузера свой класс главного окна

Вот такой схемкой можно посмотреть классы окон и еще некоторую полезную инфу

WinInfo

Add(MainForm,5648784,231,175)
{
Visible=1
Point(onClose)
link(onCreate,2573960:doEvent1,[(275,195)(275,188)])
link(onClose,13953824:doDesabledMouseHook,[])
}
Add(WinInfo,7049642,476,336)
{
Point(Left)
Point(Top)
Point(Width)
Point(Height)
Point(LanguageName)
Point(ThreadID)
Point(ProcessID)
Point(ParentHandle)
link(onWinInfo,10535782:doEvent1,[])
link(Handle,10285583:Var2,[])
}
Add(BaloonToolTips,10234504,784,336)
{
Font=[Tahoma,8,0,0,1]
Title="WinInfo"
Icon=1
Mode=1
link(Handle,9184448:Value,[(790,303)(762,303)])
link(Point,10162127:Point,[])
}
Add(PointXY,10162127,798,252)
{
link(X,9981994:Value2,[(804,240)(398,240)])
link(Y,9981994:Value3,[(811,234)(405,234)])
}
Add(GHotKey,14340948,175,196)
{
@Hint=#22:Exit - <Ctrl><Alt><F4>|
Alt=1
Ctrl=1
Key=115
link(onEventHotKey,5648784:doClose,[])
AddHint(61,37,116,13,@Hint)
}
Add(Hub,2573960,287,182)
{
link(onEvent1,14340948:doStartHotKey,[(312,188)(312,157)(161,157)(161,202)])
link(onEvent2,13953824:doSetMouseHook,[])
}
Add(Hub,10535782,581,336)
{
link(onEvent1,15903031:doString,[])
link(onEvent2,10234504:doShow,[(729,349)(729,356)])
}
Add(InlineCode,13953824,336,189)
{
@Hint=#9:MouseHook|
WorkPoints=#14:doSetMouseHook|19:doDesabledMouseHook|
EventPoints=#11:onMouseHook|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|42:uses Windows, Messages, Kol, Share, Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|5: |9: public|27: onMouseHook:THI_Event;|59: procedure doSetMouseHook(var _Data:TData; Index:word);|69: procedure doDesabledMouseHook(var _Data:TData; Index:word); |5: end;|0:|14:implementation|0:|4:type|25: TMouseMoveHook = record|19: case Integer of|21: 0: (Hook: HHOOK);|24: 1: (Timer: THandle);|6: end;|0:|37: PMsLLHookStruct = ^TMsLLHookStruct;|35: tagMSLLHOOKSTRUCT = packed record|15: pt: TPoint;|21: mouseData: DWORD;|17: flags: DWORD;|16: time: DWORD;|24: dwExtraInfo: PDWORD;|6: end;|38: TMsLLHookStruct = tagMSLLHOOKSTRUCT;|0:|3:var|32: MouseMoveHook: TMouseMoveHook;|19: sClass: LongInt; |0:|93:function LowLevelMouseProc(nCode: Integer; WParam: WPARAM; LParam: LPARAM): LRESULT; stdcall;|3:var|20: dh, dx, dy: TData;|5:begin|70: Result := CallNextHookEx(MouseMoveHook.Hook, nCode, WParam, LParam);|31: if WParam = WM_MOUSEMOVE then|7: begin|64: dtInteger(dh, WindowFromPoint(PMsLLHookStruct(LParam)^.pt));|49: dtInteger(dx, PMsLLHookStruct(LParam)^.pt.X);|49: dtInteger(dy, PMsLLHookStruct(LParam)^.pt.Y);|20: dh.ldata := @dx;|20: dx.ldata := @dy;|57: _hi_onEvent_(THiAsmUnit(sClass).onMouseHook, dh); |32:// ShowWindowInfoAtPos(Point(|38:// PMsLLHookStruct(LParam)^.pt.X,|40:// PMsLLHookStruct(LParam)^.pt.Y));|6: end;|4:end;|0:|49:procedure SetMouseHook(const IsEnabled: Boolean);|5:const|19: WH_MOUSE_LL = 14;|5:begin|19: if IsEnabled then|89: MouseMoveHook.Hook := SetWindowsHookEx(WH_MOUSE_LL, @LowLevelMouseProc, HInstance, 0)|6: else|44: UnhookWindowsHookEx(MouseMoveHook.Hook);|4:end;|0:|36:procedure THiAsmUnit.doSetMouseHook;|5:begin|26: sClass := LongInt(Self);|21: SetMouseHook(true);|4:end;|0:|41:procedure THiAsmUnit.doDesabledMouseHook;|5:begin|22: SetMouseHook(false);|9:end; |0:|4:end.|
link(onMouseHook,9981994:doValue,[])
AddHint(67,-37,73,13,@Hint)
}
Add(MT_MultiMem,9981994,385,189)
{
Count=3
link(onData,15708578:doEvent1,[])
}
Add(FormatStr,15903031,630,336)
{
DataCount=12
Mask="ClassName: %1\r\nCaption: %2\r\nLanguageName: %7\r\nLeft: %3\r\nTop: %4\r\nWidth: %5\r\nHeight: %6\r\n\r\nThreadID: %8\r\nProcessID: %9\r\nParentHandle: %11\r\nHandle: %10"
link(onFString,10234504:doCreate,[])
link(Str1,7049642:ClassName,[(636,324)(559,324)(559,380)(482,380)])
link(Str2,7049642:Caption,[(643,324)(566,324)(566,380)(489,380)])
link(Str3,7049642:Left,[(650,324)(573,324)(573,380)(496,380)])
link(Str4,7049642:Top,[(657,324)(580,324)(580,380)(503,380)])
link(Str5,7049642:Width,[(664,324)(587,324)(587,380)(510,380)])
link(Str6,7049642:Height,[(671,324)(594,324)(594,380)(517,380)])
link(Str7,7049642:LanguageName,[(678,324)(601,324)(601,380)(524,380)])
link(Str8,7049642:ThreadID,[(685,324)(608,324)(608,380)(531,380)])
link(Str9,7049642:ProcessID,[(692,324)(615,324)(615,380)(538,380)])
link(Str10,10285583:Var3,[(699,246)])
link(Str11,7049642:ParentHandle,[(706,324)(626,324)(626,380)(545,380)])
}
Add(Memory,9184448,756,252)
{
Default=Integer(0)
}
Add(Hub,15708578,434,189)
{
link(onEvent1,10234504:doDestroy,[(738,195)(738,349)])
link(onEvent2,7049642:doWinInfo,[(462,202)(462,342)])
}
Add(GetDataEx,10285583,476,241)
{
Angle=3
link(Data,9981994:Value1,[(391,246)])
}

карма: 22

0
Редактировалось 1 раз(а), последний 2017-04-24 19:46:27