Autor Beitrag
C#
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 561
Erhaltene Danke: 65

Windows 10, Kubuntu, Android
Visual Studio 2017, C#, C++/CLI, C++/CX, C++, F#, R, Python
BeitragVerfasst: Mi 19.02.14 21:21 
Hey Leute,

Ist es möglich mit C# auf externe Anwendungen zuzugreifen und herauszufinden, ob dort z.b. ein Textfeld den Fokus besitzt? Ich meine so etwas geht (siehe Managed Spy). Ist das auch irgendwie mit unmanaged Code Anwendungen möglich? Also mit C# auf ein nicht-NET Programm zugreifen und dessen UI Struktur auszuwerten?
Und könnte so was auch mit HTML (Textfelder in Internetseiten) gehen?

_________________
Der längste Typ-Name im .NET-Framework ist: ListViewVirtualItemsSelectionRangeChangedEventHandler
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mi 19.02.14 21:39 
Die steht die gesamte Windows API per PInvoke offen.

Mit GetForegroundWindow das Fenster mit dem Focus ermitteln dann mit AttachThreadInput sich an die MessageSchleife des Threads mit diesem Fenster hängen um dann per GetFocus sich das Handle auf das focussierte Control holen.
Mit dem Handle kannst du dann die Windows API nach den Details bezüglich des Controls befragen die dich konkret interessieren.

Zitat:
Und könnte so was auch mit HTML (Textfelder in Internetseiten) gehen?


Nein Objekte im Html sind keine Windows Elemente(haben kein Handle). Die werden vom Renderer des Browser so auf den Canvas gezeichnet. Um dazu Informationen zu bekommen müsstest du den DOM zur Html Seite erfragen und dann den durchforsten.

Für diesen Beitrag haben gedankt: C#
C# Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 561
Erhaltene Danke: 65

Windows 10, Kubuntu, Android
Visual Studio 2017, C#, C++/CLI, C++/CX, C++, F#, R, Python
BeitragVerfasst: Fr 21.02.14 14:55 
Ahh Danke. Das mit dem AttachThreadInput versteh ich noch nicht so ganz :?:. Ich melde mich wieder wenn ich Probleme bekomme.

_________________
Der längste Typ-Name im .NET-Framework ist: ListViewVirtualItemsSelectionRangeChangedEventHandler
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Fr 21.02.14 15:53 
Was auch nicht ganz zuende durchdacht. Für AttachThreadInput braucht man natürlich einen Handle auf den Thread ein FensterHandle aus dem Thread reicht nicht.
Hier ist es aber glücklicherweise jemand der das zu ende gedacht hat.