Hallo,
ich stehe im Moment vor dem Problem eine Art Wartungstool zu schreiben.
Die eigentliche Anwendung wird gestartet und mein Programm soll die Ausgaben analysieren und entsprechend reagieren.
Habe mich schon ein wenig schlau gemacht und herausgefunden wie ich an das WindowHandle herankomme
aber wie ich von da jetzt auf die einzelnen Controls oder so zugreifen kann ergibt sich mir noch nicht wirklich.
Ich entwickel mit C# und neuster .NET Version.
Wäre eventuell auch Bereit einen kleinen Betrag zu zahlen wenn mir jemand via Skype, Jabber oÄ gezielt Hilfe gibt.
greetz
Wenn du nach IPC (=Inter Process Communication) suchst findest du einiges, u.a.:
Kommunikation zwischen zwei Programmen
Mfg
Aratar
ich glaube nicht... auf die andere anwendung habe ich keinen zugriff ausser sie halt zu zu starten und dann die GUI auszuwerten
Ich bilde mir ein, ich hätte in der dotnetpro mal einen Artikel gelesen, der in die Richtung ging. Glaube, da wurde anhand der calc.exe beschrieben, wie man auf Steuerelemente einer fremden Applikation zugreifen kann.
Wenn ich mich nicht irre, war es der hier:
http://www.dotnetpro.de/articles/onlinearticle2838.aspx
Werd heute Abend zu Hause mal mein Archiv durchwühlen und gucken ob der Artikel was für Dich ist
Ja das habe ich auch schon in ein paar Tuts gefunden... Da wird aber nicht ganz das gemacht was ich möchte.
Es wird der Calculator gestartet, das WindowHandle geholt und dann werden per Win32API SendMessage Buttons gedrückt.
Das geht leider nicht weit genug glaube ich 😕
aber trotzdem shconmal danke 😃
Habe wie versprochen mal den Artikel rausgesucht...
Soweit ich's überblicke, müsste Dir der Artikel weiterhelfen können, er widmet sich der User Interface Automation (System.Windows.Automation).
Kannst ja mal in der Richtung in der MSDN suchen, ob Du dort was findest, das Dir weiterhilft. Ansonsten wären vielleicht die 15 Euro für das Nachbestellen der Ausgabe gut investiert 😃
Hol dir den ACC Explorer und schau dir an, ob das fremde Fenster ACC Namen vergeben hat. Dann ist es relativ einfach. Stichwort: "Accessibility names"
habe mich über den ACC Explorer mal ein wenig informiert....
Also ich finde leider keinen brauchbaren Download für das Teil 😕
Weiterhin kann es sein, dass das Ding nur für in .NET geschriebene GUIS funktioniert?
Die Anwendung die ich überwachen soll ist nämlich nicht in .NET umgesezt
Hallo skelle,
wenn du GUI in .NET/WinForms programmiert worden ist, dann wird es nicht funktionieren. Du kannst zwar mit Spy++ auf die Oberfläche zugreifen, aber nicht mit der Win32-API Änderungen(Lesen, Schreiben) vornehmen. Stichwort: UIAutomation.
zero_x
zero_x | <span style="font-size: 10;">my</span><span style="font-size: 10;">CSharp</span><span style="font-size: 10;">.de</span> - gemeinsam mehr erreichen
Für längere Zeit inaktiv.
Du kannst zwar mit Spy++ auf die Oberfläche zugreifen, aber nicht mit der Win32-API Änderungen(Lesen, Schreiben) vornehmen
Seit wann? Die meisten Winforms Controls basieren auf Win32 Controls. Und die die elemente enthalten, welche nicht darauf basieren, kann man leicht über Windowsmessages manipulieren.
Hallo JAck30lena,
teste es selbst! Ich hatte mal das gleiche vor und es hat nicht funktioniert. Mit meiner Aussage bin ich mir mehr als sicher, ganz sicher.
zero_x
zero_x | <span style="font-size: 10;">my</span><span style="font-size: 10;">CSharp</span><span style="font-size: 10;">.de</span> - gemeinsam mehr erreichen
Für längere Zeit inaktiv.
Hm.. Komisch, das ich das vor knapp 2 Jahren mit .net 2.0 machen konnte. Damals habe ich eine rudimentäre Test-Automatisierung gemacht. Was natürlich nicht geht, ist über die WinApi den reinen .net anteil zu ändern. Das musst du über Windowsmessages oder noch fießer über Reflection machen (hierzu musst du die Anwendung in der eigenen Appdomain hosten)
Generell ist das aber offtopic, da die Zeilanwendung nicht .Net ist.