Запустить приложение на удаленном ПК при нажатии кнопки в WinForm

Я пытаюсь создать простую форму winform для запуска исполняемого файла сервера Life is Feudal на удаленной машине. Команда запуска сервера в cmd на сервере "C:\Program Files (x86)\Steam\life is feudal\ddctd_cm_yo_server.exe" WorldDS 1

На данный момент я пытаюсь сделать для него простую кнопку запуска/остановки. Я могу понять, как остановить это позже, я просто хочу попытаться заставить работать часть «старт». Я не совсем уверен, с чего начать с кода. Все, что у меня есть для кнопки сейчас: '''

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace LifeIsFeudalServerManager
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Serverstatus_Click(object sender, EventArgs e)
        {

        }
        bool servcrtl = true;
        private void ServerControl_Click(object sender, EventArgs e)
        {
            if (servcrtl == true)
            {
                servcrtl = false;
                ServerControl.Text = "Stop";


            }
            else
            {
                servcrtl = true;
                ServerControl.Text = "Start";


            }
        }

    }
}

''' Я хотел бы добавить событие щелчка, которое запускает исполняемый файл с аргументом «WorldDS1» при первом нажатии, когда кнопка отображает «старт». Затем я хотел бы добавить событие щелчка, которое закрывает процесс при втором щелчке, когда кнопка отображает «стоп». Я только начинаю работать с С# и использую Visual Studios, поэтому чем проще, тем лучше, и любая помощь будет принята с благодарностью.


person JAB    schedule 04.01.2020    source источник
comment
Посмотрите PSExec здесь docs.microsoft.com/en-us/sysinternals/downloads/ psexec   -  person bic    schedule 05.01.2020
comment
Вы можете обратиться к совету bic. Кроме того, вы можете посмотреть Выполнить exe на удаленной машине, чтобы узнать, как его использовать.   -  person Jack J Jun - MSFT    schedule 06.01.2020


Ответы (1)


Вы можете сделать что-то подобное, если программа установлена ​​на вашем ПК и вы хотите ее запустить. Во-первых, вы должны знать расположение исполняемого файла и имя файла.

//Pass your command string
private List<string> ExecuteCommand(string Command)
        {
            string cmdString = "C:\Program Files (x86)\Steam\life is feudal\ddctd_cm_yo_server.exe"

            List<string> CommandLineResponse = new List<string>();
            Process cmd = new Process();
            cmd.StartInfo.FileName = "cmd.exe";//the process to execute
            cmd.StartInfo.RedirectStandardInput = true;//this is set to be able to pass in string arguments to command-line
            cmd.StartInfo.RedirectStandardOutput = true;//this is set to true to get the response at the command-line
            cmd.StartInfo.CreateNoWindow = true;//do not show a command line window
            cmd.StartInfo.UseShellExecute = false;
            cmd.Start();//start the process

            cmd.StandardInput.WriteLine(cmdString);
            cmd.StandardInput.Flush();
            cmd.StandardInput.Close();
            while (!(cmd.StandardOutput.EndOfStream))
            {
                CommandLineResponse.Add(cmd.StandardOutput.ReadLine());
            }
            return CommandLineResponse;
        }
person Formula12    schedule 04.01.2020