Конференция "WinAPI" » узнать, находится ли фокус ввода в окне или нет... [D7]
 
  • istok (16.08.10 17:54) [0]
    есть handle (hwnd) окна (вернее это edit контрол), нужно узнать, находится ли оно в фокусе ввода или нет
  • istok (16.08.10 17:59) [1]
    PS: GetForegroundWindow возвращает хендл родительского окна, а мне надо знать, в фокусе ли конкретное поле ввода..
  • Anatoly Podgoretsky © (16.08.10 19:58) [2]
    > istok  (16.08.2010 17:59:01)  [1]

    В первом приближение GetCaretPos
  • Игорь Шевченко © (16.08.10 23:32) [3]
    GetFocus = hwnd
  • Leonid Troyanovsky © (17.08.10 07:51) [4]

    > istok   (16.08.10 17:54)  

    GetGUIThreadInfo Function

    --
    Regards, LVT.
  • istok (30.08.10 13:54) [5]

    > GetGUIThreadInfo Function


    что-то она у меня не работает, возвращает false и 87ой getlasterror, что значит invalid parameter..:

    procedure TForm1.btnRefreshClick(Sender: TObject);
    var
     lpgui: tagGUITHREADINFO;
    begin
    lbIEURL.Clear;

    if GetGUIThreadInfo(2320, lpgui) then
    begin
      lbIEURL.Items.Add('active '+inttostr(lpgui.hwndActive) + ' ' + GetWndClass(lpgui.hwndActive));
      lbIEURL.Items.Add('focus '+inttostr(lpgui.hwndFocus) + ' ' + GetWndClass(lpgui.hwndFocus));
      lbIEURL.Items.Add('caret '+inttostr(lpgui.hwndCaret) + ' ' + GetWndClass(lpgui.hwndCaret));
    end
    else
      lbIEURL.Items.Add(IntToStr(GetLastError));



    значение thread id 2320 взял из process explorer, это же значение получаю через  GetWindowThreadProcessId, т.е. такой поток точно есть в системе..
  • Leonid Troyanovsky © (30.08.10 14:45) [6]

    > istok   (30.08.10 13:54) [5]

    http://msdn.microsoft.com/en-us/library/ms633506(VS.85).aspx

    Note that you must set the cbSize member to sizeof(GUITHREADINFO)
    before calling this function.

    --
    Regards, LVT.
  • istok (30.08.10 15:10) [7]
    ах-ах, читал же мсдн и пропустил это предложение((  спасибо!!!!!!!!
 
Конференция "WinAPI" » узнать, находится ли фокус ввода в окне или нет... [D7]
Есть новые Нет новых   [134431   +11][b:0][p:0.001]