Вставить консольное приложение в приложение WPF под нагрузкой - PullRequest
0 голосов
/ 29 мая 2019

Я хотел бы получить несколько советов, чтобы решить эту или даже решение этой маленькой проблемы, в которой я застрял на данный момент.

Я написал код WPF и хочу встроить в него консольное приложение. Сначала я открыл console.exe, и как только он открывается вне WPF, я пытаюсь встроить его в свое приложение WPF.

Сценарий выше работает абсолютно нормально, если я вставляю приложение по нажатию кнопки, например ниже,

ДЛЯ ОТКРЫТИЯ APP консоли

            string exe = @"cmd.exe";
            var processStartInfo = new System.Diagnostics.ProcessStartInfo(exe);
            processStartInfo.WorkingDirectory = System.IO.Path.GetDirectoryName(exe);
            cmdProcess = Process.Start(processStartInfo);

А затем вставить его в приложение WPF:

(Примечание: всякий раз, когда я запускаю приведенный ниже код при нажатии кнопки, он работает нормально, однако я хочу, чтобы он запускался при загрузке формы после InitializeComponent () метод)

            System.Windows.Forms.Panel panel = new System.Windows.Forms.Panel();

            Win32API.SetParent(cmdProcess.MainWindowHandle, panel.Handle);

            winFormsHost.Child = panel;

Приведенный выше код отлично работает при нажатии кнопки. Однако я не хочу нажимать кнопку, чтобы встроить ее в мое приложение WPF. Я хочу напрямую загрузить приложение WPF и встроить в него свое консольное приложение, ничего не делая вручную.

Как мне этого добиться?

1 Ответ

1 голос
/ 29 мая 2019

Вы можете добавить свой код в метод и вызывать этот метод после загрузки окна.Смотрите ниже:

 public MainWindow()
 {
     InitializeComponent();

     Loaded += (s, e) => LoadConsole();
 }

 private void LoadConsole()
 {
     //Your code goes here
 }
...