logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[DELPHI] Uchwyt okna innej aplikacji - klawiatura ekranowa

wojtektonder777 14 Gru 2010 14:10 5484 4
REKLAMA
  • #1 8867241
    wojtektonder777
    Poziom 9  
    Posty: 20
    Cześć

    Robię klawiaturę ekranową i mam problem z wysłaniem do aktywnego okna innej aplikacji wpisywanych znaków na klawiaturze ekranowej np:

    keybd_event(ord('B'), 1, 0, 0);
    keybd_event(ord('B'), 1, KEYEVENTF_KEYUP, 0);


    tak jak jest w klawiaturze ekranowej Windows.

    Do samego programu potrafie wysłać znak z klawiatury np. poprzez ustawienie focusa:

    memo1.setfocus;


    Rozumiem że muszę znać uchwyt okna - nie mogę tego na stałe zadeklarować:

    FindWindow(NULL, "np_notatnik");


    bo klawiatura musi wpisywać do dowolnego okna najlepiej ostatnio aktywnego. Bo przecież jak kliknę na klawisz to okno stanie się aktywne.

    Jak to zrobić - macie jakiś pomysł?
  • REKLAMA
  • REKLAMA
  • #3 8867310
    wojtektonder777
    Poziom 9  
    Posty: 20
    czytałem ten temat. Tylko tam (o ile sie nie myle) rozwiązano problem wysyłania znaków do określonej aplikacji poprzez z góry ustalony uchwyt okna, a ja chciałbym wysłać do ostatniego aktywnego okna. Jeśli taka jest możliwość to prosiłbym o jakieś wskazówki.
  • REKLAMA
  • Pomocny post
    #4 8867376
    arnoldziq
    VIP Zasłużony dla elektroda
    Posty: 5376
    Pomógł: 789
    Ocena: 300
    Nazwę aktywnego okna, możesz pobrać w ten sposób :
    function ActiveCaption: string;
    var
      Handle: THandle;
      Len: LongInt;
      Title: string;
    begin
      Result := '';
      Handle := GetForegroundWindow;
      if Handle <> 0 then
      begin
        Len := GetWindowTextLength(Handle) + 1;
        SetLength(Title, Len);
        GetWindowText(Handle, PChar(Title), Len);
        ActiveCaption := TrimRight(Title);
      end;
    end;
    Potem to już "z górki" :)
  • #5 8868650
    wojtektonder777
    Poziom 9  
    Posty: 20
    faktycznie z górki - działa.
REKLAMA