Estou tentando criar o processo em uma máquina remota usando a classe System.Diagnostics.Process. Sou capaz de criar um processo. Mas o problema é que a criação de um serviço leva muito tempo e a janela do console é exibida. Outra coisa irritante é que a janela do console é exibida no topo do meu formulário do Windows e eu não consigo fazer nenhuma outra operação nesse formulário. Eu configurei todas as propriedades como CreateNoWindow = true
,
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
mas ainda mostra a janela do console. mesmo eu redirecionei a saída e os erros para fluxo separado, mas sem sorte.
Existe alguma outra maneira de ocultar a janela do console? Por favor, me ajude .
Aqui está a parte do meu código que usei para executar o comando sc.
Process proc = new Process();
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
proc.StartInfo.FileName = "sc";
proc.StartInfo.Arguments = string.Format(@"\\SYS25 create MySvc binPath= C:\mysvc.exe");
proc.StartInfo.RedirectStandardError = false;
proc.StartInfo.RedirectStandardOutput = false;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
proc.Start();
proc.WaitForExit();
c#
process
console-application
Prasad
fonte
fonte
proc.StartInfo.RedirectedStandardOutput = true
? Eu fiz isso funcionar com um aplicativo do Windows.UseShellExecute
eCreateNoWindow
duas vezes?Respostas:
Tive um problema semelhante ao tentar iniciar um processo sem mostrar a janela do console. Testei várias combinações diferentes de valores de propriedade até encontrar uma que exibisse o comportamento que eu queria.
Aqui está uma página que detalha por que a
UseShellExecute
propriedade deve ser definida como falsa.http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.createnowindow.aspx
Na seção Comentários da página:
fonte
startInfo.UseShellExecute = false;
Tive azar com esta resposta, com o processo (Wix light.exe) essencialmente saindo para almoçar e não voltando para casa a tempo para o jantar. No entanto, o seguinte funcionou bem para mim:
fonte
CreateNoWindow = true
não funcionou para mim, funcionou :)Isso deve funcionar, tente;
Adicione uma referência do sistema.
Em seguida, use este código para executar seu comando em uma janela CMD oculta.
fonte
Isso não mostra a janela:
fonte