Jak uzyskać dostęp do aplikacji konsolowej i uruchomić ją z formularza Windows, który jest częścią tego samego projektu. Mam formularz okna i aplikację konsoli. Myślę, że mogę opublikować aplikację konsoli, a następnie użyć Process.Start(path to console app)
, ale to nie jest to, czego chcę. Chcę uzyskać dostęp i korzystać z metody Main
aplikacji konsoli w moim projekcie formularza. Ta metoda uruchomiłaby się po kliknięciu przycisku.Wywołanie metody "Main" aplikacji konsoli z poziomu aplikacji formularza (zdarzenie click button)
Daje to następujący błąd.
InvalidOperationException was unhandled Cannot read keys when either application does not have a console or when console input has been redirected from a file. Try Console.Read.
private void buttonApplication_Click(object sender, EventArgs e)
{
Ch15Extra_2.Program.Main();
}
Oto sposoby.
ConsoleApp:
namespace Ch15Extra_2
{
public class Program
{
public static void Main()
{
Console.WriteLine("Here the app is running");
Console.ReadKey();
}
}
}
Form1:
private void buttonApplication_Click(object sender, EventArgs e) { }
Nie jest jasne, czego się spodziewać. Mówisz, że nie chcesz uruchamiać aplikacji konsoli jako samodzielnego procesu, ale jeśli wywołasz tę metodę tak jak jest, to oczywiście nie zadziała, ponieważ nie masz aplikacji konsolowej. Jak można się spodziewać, że 'Console.ReadKey()' zachowa się w aplikacji WinForms? – Tudor
@ Tudor Przypuszczam, że konsola.ReadKey() nie zrobi wiele na formularzu. OK, to czy aplikacja formularzy nie może wywołać aplikacji konsoli otwierającej inny proces, który pochodziłby z głównej metody wywoływanej aplikacji konsoli. – somethingSomething
@Tudor Kiedy pisałem formularz aplikacji formant formularza (przycisk) – somethingSomething