Вставить EXE и их диалоги внутри Winform c# - PullRequest
0 голосов
/ 27 марта 2020

Я хочу встроить EXE и их диалоги в Winform, особенно в WinRAR, почему я хочу встроить его и их диалоги? потому что я хочу проверить, все ли части многотомных файлов найдены в чем проблема? проблема в том, что он показывает новое диалоговое окно тома, когда файл пропускает следующий том. Мне нужно знать, пропустил ли файл следующий том и в то же время не показывать диалоговое окно следующего тома, поэтому я хочу встроить winRAR и их диалоги в winform c# , Я нашел, как встроить его вот код:

   [DllImport("user32.dll")]
        static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);

....
  IntPtr PanelHandler= WinRARPanel_Ref.Handle;
 p.Start();
           // p.BeginOutputReadLine();
           // p.BeginErrorReadL7ine();
            IntPtr h = p.MainWindowHandle;
           // p.WaitForInputIdle();
            while (true)
            {
                if (p.HasExited)
                    break;
                if (p.MainWindowHandle != IntPtr.Zero)
                    break;

                    Thread.Sleep(100); // Don't hog the CPU
                p.Refresh(); // You need this since `MainWindowHandle` is cached

                // do additional checks, or add a timeout in case the process is stalled
                // or never creates a main window handle, etc.
            }
                if (!p.HasExited)
                {
                    SetParent(p.MainWindowHandle, PanelHandler);
                    SetWindowLong(p.MainWindowHandle, GWL_STYLE, WS_VISIBLE);
                    }
...

это встраивать winRAR, но не их диалоги, потому что следующий объем диалогов отображается снаружи, так как встроить процесс и их диалоги внутри панели? Спасибо за помощь

...