Thursday 23 November 2017

Linha De Comando C # Processo Waitforexit


O problema Um colega de trabalho queria construir uma ferramenta em C, que envolve a execução de um comando de linha de comando. Uma vez que uma API não está disponível para eles, eles pedem uma maneira rápida de iniciar um executável de linha de comando com a opção de analisar através da saída padrão. A Solução A minha solução para eles que lhes permitirá: Iniciar uma linha de comando executável com argumentos Ter a opção de recuperar a saída padrão Tenha a opção de recuperar Erro Padrão Tenha a opção de lançar exceção em Erro Padrão Reencaminhar quaisquer exceções (ex: executável faz Não existe) A solução é uma única função estática que usa a classe System. Diagnostic. Process para executar a execução 1. O nome do executável e os argumentos são fornecidos na propriedade Process. StartInfo como um objeto System. Diagnostic. ProcessStartInfo 23. Nós Deseja configurar o Process. StartInfo. UseShellExecute como falso, pois queremos que a opção obtenha a saída padrão e o erro padrão 4. A saída padrão e o erro padrão podem ser redirecionados com Process. StartInfo. RedirectStandardOutput e Process. StartInfo. RedirectStandardOutput, respectivamente Irá ligar ou desligar com flags56. Finalmente, no caso de estar lendo Process. StandardOutput ou Process. StandardOutput. Precisamos invocar o método Process. WaitForExit 678. A Implementação The Exampleserpant 07 de agosto de 2009 K, o código abaixo é uma bagunça completa desde que estou falando com ela para tentar fazer com que ele execute os comandos mais simples em um prompt de comando. Mas se você olhar para o fundo você verá todas as minhas últimas tentativas para fazê-lo funcionar, o resto do código é comentado para a maior parte. Eu olhei em torno da internet, tentei algumas maneiras diferentes que você não pode ver aqui, mas ainda não consegui. O que isso faz Este programa tenta montar um arquivo criptografado usando um arquivo de lista de palavras e truecrypt. Esqueci minha senha e já criei um gerador de listas de palavras personalizadas que eu acho que poderia gerar a senha. Ele combina arrays, a primeira parte do IE poderia ser, esta ou esta segunda parte poderia ser, isto ou aquilo e isso vai um, levando as variáveis ​​e, em seguida, gera todas as combinações possíveis. Eu só preciso disso para aplicá-lo. Eu pensei que isso iria demorar 20 minutos para escrever. Eu não consigo descobrir como isso funciona, mesmo depois de examinar exemplos on-line. Editado por serpant, 07 de agosto de 2009 - 05:21 AM. Esqueceu as tags de código Parabola 07 Aug 2009 Parabola 07 Aug 2009 serpant 07 Aug 2009 Sim, isso faz muito sentido que eu estava pensando que não seria capaz de enviar o passe e o argumento como uma opção por algum motivo. Obrigado. Vou tentar agora mesmo. Eu ainda estou curioso quanto ao motivo pelo qual o método que eu estava tentando usar não funcionaria. IE enviando argumento string string diretamente para process. start (). Mas, espero que isso funcione, não há mensagens posteriores. Serpant 07 Aug 2009 Este método inicia o programa no modo GUI configurado com as variáveis. Acho que talvez eu tenha tentado algo assim anteriormente. Eu realmente preciso começar um console, depois executar os comandos nele. Porque se eu executar o truecrypt, as opções que você vê no código acima irão montar se estiver correta e não fazer nada se for errado (no prompt de comando). No modo GUI, tudo é clicado. Eu não quero apenas iniciar o programa, eu quero controlar e executar o prompt de comando do meu programa. Espero que isso explique o que eu preciso mais. Obrigado pela ajuda. Eu pensei que tinha lá por um segundo. Eu procurei maneiras de fazer isso, e enviar uma string string process. start (), parece ser uma opção válida. Eu tentei isso, eu acredito que uma vez e isso é o que eu gastei mais do meu esforço tentando descobrir Parabola 07 de agosto de 2009 sim, o programa no link faz GUI, mas o código que eu enviei para você, como você pode ver, eu modifiquei. Você poderia facilmente fazer um console. Readline () para obter comandos do console. Quando eu executei o script, ele correu sem GUI, apenas executou o programa que foi codificado para ele. Serpant 07 de agosto de 2009 Copiei seu código, o que era praticamente o mesmo que algumas coisas que eu tentei antes. Ele não monta nada, no entanto, se eu apenas copiar as opções diretamente do VisualStudios e executá-lo em um prompt de comando, ele faz. Percebi isso antes, por isso que tentei descobrir como executar coisas no CMD. exe. O que é visto são alguns web sties que dizem que você pode fazer isso Process. Start (CMD. exe, coisa de linha de comando que deseja executar aqui) parece tão simples, mas não está funcionando. Esses fóruns não são tão animados como costumavam ser , Eh Última vez, quando pedi ajuda no meu jogo de RPG. Havia um grupo de pessoas com ideias. Obrigado por tentar a parábola. Eu vou tentar descobrir um pouco mais tarde, então eu posso tentar outro fórum, foi só eu e você neste durante mais de um dia. Id como um mais ativo, você conhece qualquer Parabola 08 de agosto de 2009, eu ainda não acho que você está conseguindo isso. Process. Start (CMD. exe, elemento de linha de comando que deseja executar aqui) Você deve tentar executar CMD. exe com args. Na verdade, execute sua linha em vez disso. Por exemplo, OU NÃO Pense nisso - cmd é apenas uma linha de comando. Não é o programa atual que deseja executar, e é por isso que, por exemplo, tente chamar um programa, em seguida, os argumentos dos programas, ligue para outro, com mais argumentos para o segundo. É ineficaz. Basta ligar para o seu programa direto, assim: serpant 08 de agosto de 2009 O que eu estava dizendo, é que eu tentei seu código, e isso não funciona. Apenas inicia o programa e não tenta montar arquivos. Eu tentei várias vezes. Não sei por que não funciona. Se eu fosse executar truecrypt em uma linha de comando com as mesmas opções, então ele monta o arquivo. É por isso que estou tentando fazê-lo do jeito que sou. Seu caminho seria bom se funcionasse. Não tenho certeza se seria muito mais eficiente. Uma vez que o truecto está em execução, operar a partir da linha de comando não iniciará o programa novamente, ele apenas tentará montar a unidade. Então, fazendo o seu jeito se funcionasse, estaria começando truecrypt algumas centenas de vezes, não. Esse código será parte de um loop com a seção de senha mudando a cada vez.

No comments:

Post a Comment