Откройте Notepad.exe, затем с помощью открытого процесса введите команду notepad, чтобы открыть существующий файл в каталоге. - PullRequest
0 голосов
/ 25 ноября 2018

Итак, я создаю приложение, которое закрепляет экземпляр Notepad в окне wpf.Прямо сейчас у меня есть пустой текстовый файл в моем окне wpf.В моих методах я пишу файлы в формате JSON или XML.Как только они будут завершены, я хочу использовать существующий процесс Notepad.exe и дать ему команду открыть проводник и открыть только что созданный файл.Возможно ли это?

Если это невозможно, каков хороший способ вставить файл блокнота в мое окно, чтобы я мог открывать различные типы текстовых файлов?

Редактировать:

Не знаю, какую информацию я должен включить, но я открываю процесс блокнота следующим образом:

 public SampleCodeWindow()
    {
        InitializeComponent();
        Loaded += (s, e) =>
                  {
                      Process p = Process.Start("notepad.exe");
                      p.WaitForInputIdle(); // Allow the process to open it's window
                      var windowHandle = new WindowInteropHelper(this).Handle;
                  };

        panel = new System.Windows.Forms.Panel();
        host.Child = panel;
        dockIt("notepad.exe");
    }


private void dockIt(string utility)
        {
            if (hWndDocked != IntPtr.Zero)
            {
                return;

            }

            pDocked = Process.Start(utility);

            while (hWndDocked == IntPtr.Zero)
            {
                pDocked.WaitForInputIdle(1000); //wait for the window to be ready for input;
                pDocked.Refresh();              //update process info
                if (pDocked.HasExited)
                {
                    return; //abort if the process finished before we got a handle.
                }
                hWndDocked = pDocked.MainWindowHandle; //cache the window handle
            }
            //Windows API call to change the parent of the target window.
            //It returns the hWnd of the window's parent prior to this call.
            hWndOriginalParent = SetParent(hWndDocked, panel.Handle);

            //Wire up the event to keep the window sized to match the control
            SizeChanged += window_SizeChanged;
            //Perform an initial call to set the size.
            AlignToPannel();
        }

        private void AlignToPannel()
        {
            MoveWindow(hWndDocked, 0, 0, panel.Width, panel.Height, true);
        }

        void window_SizeChanged(object sender, SizeChangedEventArgs e)
        {
            AlignToPannel();
        }

Я ищу способ сообщить существующему процессу Блокнота, чтобы открытьфайл, который я создаю, или чтобы закрыть этот процесс блокнота и открыть другой, используя путь к файлу.Я не совсем уверен, что лучший способ добиться того, что я здесь ищу, - это *. 1010 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...