API C # - wie den Griff der Textbox zu erhalten, wo das Einfügemarke in einem anderen Programm ist?

StackOverflow https://stackoverflow.com/questions/4297855

  •  28-09-2019
  •  | 
  •  

Frage

Ich mag den Griff bekommen der Textbox, wo das Einfügemarke in ist, in einem anderen Programm. ich kann alles finden ist, wie die Liste der Kontrollen mit „EnumChildWindows“ in einem Fenster zu bekommen, und dann „Bearbeiten“ Steuerung zu suchen .. (und es funktioniert nicht für alle das Programm, das Textfeld hat). Ich habe keine Ahnung, wie das zu finden, dass das Einfügemarke in ist, und der Benutzer in schreibt. Ich habe wirklich mit ihm stecken .. :( vielen Dank, Shiran.

War es hilfreich?

Lösung

Sie müssen durch mehrere pinvoke Reifen springen. Beginnen Sie mit GetForegroundWindow (), um den Griff der aktiven Toplevel-Fenster zu erhalten. Dann GetThreadWindowProcessId (), um die ID des Fadens zu erhalten, die das Fenster besitzt. Dann endlich GetGUIThreadInfo (), gibt es eine Reihe von in etwa den von der Thread gehört Fenster. Das GUITHREADINFO.hwndCaret Mitglied haben Sie den Griff in die Fenster, das die caret besitzt. Es muss nicht btw ein Textfeld sein.

Besuchen Sie pinvoke.net für die Erklärungen die Sie benötigen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top