Стартирайте приложението на отдалечен компютър, когато щракнете върху бутона в 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' при първото щракване, когато бутонът показва "старт". След това бих искал да добавя събитие за щракване, което затваря процеса при второто щракване, когато бутонът показва „стоп“. Току-що започвам с C# и използвам 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