C# Wpisanie tekstu w TextBox w innej formie

Witam

Mam następujący problem, chciałbym mieć w swoim programie TextBoxa i żeby to co jest w tym TextBoxie zostało przepisane do textBoxa z innej formy z tym ze ta forma nie jest elementem mojego programu tylko zewnętrzną oddzielna aplikacja. To jest raczej cięższy temat i tutaj w grę wchodzi jakieś makro ale najpierw zapytam tutaj ponieważ nawet nie wiem co wpisać Google aby uzyskać jakąś satysfakcjonującą odpowiedź. Chodzi tutaj o ułatwienie procesu, nie trzeba co chwile zmieniać aplikacji tylko by było wszystko w jednej nowej i ona by była nakładką na ta pierwsza.

Pozdrawiam

http://www.codeproject.com/KB/cs/SendKeys.aspx

Generalnie wybór rozwiązania zależy od tego, czy obie aplikacje są uruchomione na jednym komputerze, czy też na dwóch różnych komputerach. Jeśli na jednym to możesz użyć czegoś co nazywa się “named pipes” (wprowadzono dopiero w .NET 3.5), a jeśli na dwóch różnych komputerach to czegoś co określa się “sockets”. Możesz też użyć technologii WCF. Wówczas będziesz mógł przełączać się między named pipes, a sockets za pomocą pliku konfiguracyjnego. Sęk w tym, że to oznaczało by pisanie obu aplikacji od nowa (i naukę zupełnie nowej technologii), więc po prostu użyj jednego z dwóch powyższych rozwiązań. Przykłady kodów źródłowych znajdziesz na stronie msdn. Dla named pipes są to:

http://msdn.microsoft.com/en-us/library/system.io.pipes.namedpipeserverstream.aspx

http://msdn.microsoft.com/en-us/library/system.io.pipes.namedpipeclientstream.aspx

U Ciebie serwerem będzie ta aplikacja, która odbiera tekst z TextBox-ów z innej aplikacji. To ona będzie nasłuchiwać.

Aplikacja jest zamknięta i nie napisze jej od nowa. Dostarczona jest ona od producenta linii smt

Dobra teraz w pełni załapałem o co chodzi. Czyli chcesz przekazać wartości z pola/pól swojej aplikacji do tamtej aplikacji, żeby uzyskać jakiś wynik i potem wyświetlić to w swojej aplikacji? A ta zamknięta aplikacja może być uruchamiania z wiersza poleceń?

Dlaczego nie można użyć sendkeys (poprzedni link wymaga zalogowania, więc dam inny)

@drobok

Jeśli dobrze rozumiem autora tematu, to ta druga aplikacja ma być uruchomiona w tle, niewidoczna dla użytkownika (wysłałem priv-a, żeby to wyjaśnić). Sprawdzałeś, czy SendKeys zadziała w takim wypadku?

A jeśli jednak ta druga aplikacja ma być widoczna to w jaki sposób określisz, do którego pola tekstowego wstawić tekst, skoro nie będziesz wiedział, które w danym momencie jest zaznaczone? Będziesz zapewne przesyłał klawisz Tab, ale skąd będziesz wiedział ile razy masz go przesłać? Pytam z ciekawości.

Skoro ma to być jedna aplikacja można by użyć czegoś w stylu:

{tab}{tab}{tab}{tab}{tab}{tab}{tab}login{tab}hasło{tab}{enter}

:slight_smile:

A co do aplikacji w tle, zawsze można by użyć sendmessage :slight_smile:

@drobok

Ale właśnie o to chodzi. Nie wiesz, która kontrolka będzie w danym momencie w tamtej aplikacji aktywna. Skąd wiesz ile razy będziesz musiał użyć tab zanim trafisz na tą kontrolkę, która Cię interesuje? No i co, gdy zmieni się interfejs tamtej aplikacji? Dlatego właśnie uważam, że to rozwiązanie nie jest dobre. Chyba, że zamiast tab-ów można w jakiś inny sposób wskazać konkretną kontrolkę?