2016-06-29 3 views
0

Я вызываю другую форму exe-файла в свою основную форму, но я не хочу, чтобы она отображалась, она должна быть видимой. тогда мне нужно закрыть exe-файл при нажатии кнопки.Как запустить видимый и закрытый процесс при нажатии кнопки

Звоню другой вид использования ехе кода

ProcessStartInfo startInfo = new ProcessStartInfo(); 
startInfo.FileName = "C:\\Users\\server.exe"; 
Process.Start(startInfo); 

пожалуйста, помогите мне, как запустить его видно?

, когда мне нужно закрыть этот ехе я использовать

Process.Kill(); 

Ссылка на объект необходим для не-статического поля, метод или свойство «process.kill()»

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

Помогите мне, как открыть другой exe, как видно? и как закрыть его при нажатии кнопки?

+0

Если вы звоните Process.Start, то ех будет запущен, и если это ех есть окно, окно будет видно. –

ответ

1

Чтобы ответить на ваш второй вопрос:

Kill() является экземпляр метод Process, но вы пытаетесь вызвать его как статический метод.

Вы должны использовать Process экземпляр, возвращаемый Process.Start() и вызвать Kill() этого экземпляра:

Process myProcessInstance = Process.Start(startInfo); 
//... 
myProcessInstance.Kill(); 

Для вашего первый вопрос: Я не в полной мере понять вашу проблему? Вы хотите, чтобы появилось окно? Должна ли она быть видимой или в видна? И что происходит (вы видите это или нет), когда вы запускаете свой текущий код?

Возможно, вы найдете ProcessStartInfo.CreateNoWindow и ProcessStartInfo.WindowStyle.

Если вы не хотите видеть форму, созданную * .exe, которую вы начали, вы, к сожалению, не сможете ее запустить, просто используя ProcessStartInfo. Вам придется использовать Windows API для перечисления окон запущенного процесса и доступа к этим окнам через этот API. Here is a starting point.

Если созданный вами server.exe, вы можете подумать о том, чтобы дать ему несколько аргументов командной строки, чтобы он не показывал формы.

+0

Мой первый вопрос: я не хочу показывать свой exe-файл. я хочу сделать мой exe видимым = false; – Divi

+0

@ Divi обновил ответ, но это не простая вещь. –

+0

Спасибо, Друг за вашу помощь ... Я делаю свою форму скрытой с помощью Opacity = 0%. – Divi

1

Вы должны хранить вы Обработать в переменном:

Process process = Process.Start(startInfo); 

process.Kill();