Laden...

Form anderer Anwendung (Putty) fernsteuern

Erstellt von bl4ckY vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.688 Views
B
bl4ckY Themenstarter:in
193 Beiträge seit 2009
vor 13 Jahren
Form anderer Anwendung (Putty) fernsteuern

Hallo,

da in unserem Betrieb viel über Putty gearbeitet wird wollte ich gerne eine Art Makrofunktion erstellen. Bisher habe ich 2 Möglichkeiten versucht aber beide funktionieren nicht so wie gewünscht.

if (m_Process.Responding)
{
    System.Windows.Forms.SendKeys.SendWait("ABC");
}

Hier wird der String leider vollkommen falsch übergeben z.B AAAABBBCCCC.

Wenn ich die Win32 API nutze kommt leider garkeine Ausgabe.

SendMessage(m_AppWin, (uint)WM.SETTEXT, 0, new StringBuilder("ABC"));

PostMessage zum senden des Schließenbefehls geht komischerweise. Meine Vermutung ist das ich nicht an den richtigen Prozess von Putty sende.

Hat damit zufaellig mal einer Erfahrungen gemacht? Es muss aufjedenfall irgendwie funktionieren da PuttyCM auch eine Makrofunktion bietet. Leider ist die Seite seit mehreren Wochen/Monaten nicht zu erreichen.

C
1.214 Beiträge seit 2006
vor 13 Jahren

Ich kann dir nicht konkret weiterhelfen, aber ich denke, bei SendMessage verwendest du das falsche Handle. Du brauchst ein Handle von dem Eingabecontrol, nicht von dem Prozess oder dem Hauptfenster.

156 Beiträge seit 2010
vor 13 Jahren

Was soll am Ende rauskommen?

http://www.tamirgal.com/blog/page/SharpSSH.aspx ... ist etwas langwierig sich einzuarbeiten - anschließend habe ich mir aber einen kleinen "Explorer" gebastelt um darüber grafisch arbeiten zu können

hand, mogel

B
bl4ckY Themenstarter:in
193 Beiträge seit 2009
vor 13 Jahren

Verzeihung das ich jetzt erst antworte, hatte Urlaub 😃

Ich kann dir nicht konkret weiterhelfen, aber ich denke, bei SendMessage verwendest du das falsche Handle. Du brauchst ein Handle von dem Eingabecontrol, nicht von dem Prozess oder dem Hauptfenster.

Leider komme ich nicht an das richtige Handle. Habe versucht es mit Spy++ raus zufinden aber anscheinend ist Putty etwas eigenartig aufgebaut.

SharpSSH hatte ich mir auch angeschaut wollte es allerdings nicht nutzen da es seit 2007 keine Änderungen mehr gab.

49.485 Beiträge seit 2005
vor 13 Jahren

Hallo bl4ckY,

es gibt schon ein paar Anwendungen, die keine Windows-Controls verwenden, sondern die Oberfläche selber zeichnen. Da kommt man dann mit dem Windows-API an die Grenzen, weil die "Control" dann gar keinen Handel habe. Ich würde mich aber wundern, wenn Putty zu dieser Art von Anwendungen gehört.

herbivore

B
bl4ckY Themenstarter:in
193 Beiträge seit 2009
vor 13 Jahren

Also es scheint wirklich so zu sein das Putty das Input Fenster selber zeichnet. Man kommt also über die Win32 Funktionen nicht dran. Einzige Möglichkeit die bleibt ist SendKeys. Das scheint auch zu funktionieren zumindest bei anderen Programmen. Bei mir sendet er die Sachen falsch. Ich werde mal weiter rum probieren und wenn ich eine Lösung habe hier rein schreiben 😃

Programm wo es funktioniert

B
bl4ckY Themenstarter:in
193 Beiträge seit 2009
vor 13 Jahren

Lösung: SendKeys.SendWait Method

Scheint ein Problem der verschiedenen Windows Versionen zu sein.

<appSettings>
    <add key="SendKeys" value="SendInput"/>
  </appSettings>

in die App.config löst zumindest bei mir das Problem.