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.
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:
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ń?
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.
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ę?