С# Запуск пакетного файла получает некоторые ошибки

avatar
PlayersOfNewAge
8 апреля 2018 в 08:11
42
1
0

Я пытаюсь создать серверную программу для Minecraft. И я делаю форму с помощью Visual Studio, я добавил кнопку «Запустить сервер».

Код кнопки «Запустить сервер»:

Process.Start("C:\\Users\\w7\\Desktop\\UxMux Server\\start.bat");

Этот код очень хорошо работает для открытия пакетного файла. Я могу запустить свой сервер. Но при открытии пакетного файла я получаю следующие ошибки: Getting error from batch file

Но если я запускаю пакетный файл вручную, я не получаю никаких ошибок. Но если я запускаю пакетный файл, я получаю ошибки.

Мои коды пакетных файлов start.bat:

@echo off
title Minecraft Plugin Test Server
mode 1000
java -Xms328M -Xmx328M -jar spigot.jar nogui
PAUSE

Изображения программы (Примечание: кнопки с турецкими названиями, потому что я турецкий) The program picture

Я не могу найти решение для этой системы.

Источник

Ответы (1)

avatar
elzooilogico
8 апреля 2018 в 12:24
0

в основном, когда вы используете <21170423821550> Process.Start () , с USESHELLEXECUTE Набор в false <5>, он называет Windows CreateProcess () Функция API. Эта функция использует переменную среды PATH текущего процесса (вашего приложения .NET, а не того, которое вы хотите запустить. Если установлено значение true, используется функция ShellExecute.

попробовать, либо

string path = System.Environment.GetEnvironmentVariable("path");
path += @";c:\your_nedded_path;";
System.Environment.SetEnvironmentVariable("path", path);
Process.Start("C:\\Users\\w7\\Desktop\\UxMux Server\\start.bat");

Или используйте, ProcessStartInfo структуру

ProcessStartInfo procStartInfo = new ProcessStartInfo()
{
  WorkingDirectory = "C:\\Users\\w7\\Desktop\\UxMux Server",
  UseShellExecute = true,
  FileName  = "cmd",
  Arguments = "/c start.bat" // + parameters
};
Process p = new Process();
p.StartInfo = procStartInfo;
p.Start();
PlayersOfNewAge
8 апреля 2018 в 15:12
0

Большое спасибо! И я хочу задать еще один вопрос. Я открыл пакетный файл. Как закрыть уже открытый пакетный файл с помощью кнопки?

elzooilogico
8 апреля 2018 в 15:49
0

вы не можете взаимодействовать с процессом cmd, по крайней мере, не так, как вы его порождаете, но, как только у вас есть процесс p, p.kill()

PlayersOfNewAge
8 апреля 2018 в 15:58
0

Я получаю эту ошибку: System.InvalidOperationException

elzooilogico
8 апреля 2018 в 16:42
0

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