Automatisierte GUI-Bedienung für Non-Qt-Anwendungen
Verfasst: 4. Dezember 2009 09:06
Hallo allerseits!
Ich soll etwas in Qt machen (und wirklich nur in Qt) für das ich so bisher keine Lösung gefunden habe. Jeder kennt QTest - eine Komponente mit der man Qt-GUIs für Testzwecke automatisiert bedienen kann.
Etwas ähnliches soll ich jetzt auch mit einem Qt-Programm tun, aber mit einem *beliebigen* Programm als Ziel - und nicht zu Testzwecken.
Oder anders gesagt: Ich soll mit einem Qt-Programm eine beliebige andere (Client-)Anwendung (konkret eine ActiveX Anwendung und eine Silverlight Browser-Anwendung) über deren GUI steuern. Mit QTest geht das natürlich nicht. Ich darf aber auch keines der bekannten Testing-Tools dafür benutzen, ich muss das also entweder selber hinbekommen oder linkbare Bibliotheken dafür benutzen. Aus rechtlichen Gründen scheiden andere Lösungen (also z.B. direkte TCP/IP-Kommunikation mit dem Server dieser Anwendungen) aus.
Was die Funktionsweise angeht... ich würde natürlich gerne vermeiden, das Ganze rein grafisch über Bewegung des Mauszeigers, über Mausclicks, Texterkennung und Bildverarbeitung zu lösen.
Lieber wäre es mir, ich könnte, ähnlich wie es QTest bei Qt-Programmen macht, auf die internen Objekt-Hierarchie zuzugreifen, um Texte auszulesen nach Bedienelementen zu suchen und diese zu manipulieren. Ich habe allerdings keine Ahnung, ob das im Falle von ActiveX und Silverlight grundsätzlich überhaupt möglich ist.
Allerdings habe ich für keinen der beiden Wege einen konkreten Lösungsansatz.
Für beide Lösungen (rein grafisch oder eben auch objekt-basiert) frage ich darum die Experten hier: Wie kann man sowas lösen? Hat Qt irgendwelche Mittel an Bord dafür? Gibt es Qt-Bibliotheken dafür? Oder Überhaupt irgendwelche C/C++ Bibliotheken die ich adaptieren könnte?
Vielen Dank für jeden noch so kleinen Tip!
Gruß
Ich soll etwas in Qt machen (und wirklich nur in Qt) für das ich so bisher keine Lösung gefunden habe. Jeder kennt QTest - eine Komponente mit der man Qt-GUIs für Testzwecke automatisiert bedienen kann.
Etwas ähnliches soll ich jetzt auch mit einem Qt-Programm tun, aber mit einem *beliebigen* Programm als Ziel - und nicht zu Testzwecken.
Oder anders gesagt: Ich soll mit einem Qt-Programm eine beliebige andere (Client-)Anwendung (konkret eine ActiveX Anwendung und eine Silverlight Browser-Anwendung) über deren GUI steuern. Mit QTest geht das natürlich nicht. Ich darf aber auch keines der bekannten Testing-Tools dafür benutzen, ich muss das also entweder selber hinbekommen oder linkbare Bibliotheken dafür benutzen. Aus rechtlichen Gründen scheiden andere Lösungen (also z.B. direkte TCP/IP-Kommunikation mit dem Server dieser Anwendungen) aus.
Was die Funktionsweise angeht... ich würde natürlich gerne vermeiden, das Ganze rein grafisch über Bewegung des Mauszeigers, über Mausclicks, Texterkennung und Bildverarbeitung zu lösen.
Lieber wäre es mir, ich könnte, ähnlich wie es QTest bei Qt-Programmen macht, auf die internen Objekt-Hierarchie zuzugreifen, um Texte auszulesen nach Bedienelementen zu suchen und diese zu manipulieren. Ich habe allerdings keine Ahnung, ob das im Falle von ActiveX und Silverlight grundsätzlich überhaupt möglich ist.
Allerdings habe ich für keinen der beiden Wege einen konkreten Lösungsansatz.
Für beide Lösungen (rein grafisch oder eben auch objekt-basiert) frage ich darum die Experten hier: Wie kann man sowas lösen? Hat Qt irgendwelche Mittel an Bord dafür? Gibt es Qt-Bibliotheken dafür? Oder Überhaupt irgendwelche C/C++ Bibliotheken die ich adaptieren könnte?
Vielen Dank für jeden noch so kleinen Tip!
Gruß