Tuesday, 6 June 2017

Vb Process Waitforexit


Process. Start com. WaitForExit () Process. Start (executtable. exe).WaitForExit () funciona bem, mas quando estou tentando Process. Start (arquivo arquivo executável).WaitForExit (), que precisa iniciar uma pequena operação dos dos, eu recebo apenas erro Para que você conheça este arquivo arquivo executável install. bat com o arquivo. bat e testar. t. quando eu colocar Process. Start (test. bat).WaitForExit (), ele funciona por algum motivo, eu simplesmente não sei porque eu não posso usar o arquivo arquivo executável. Assim como no vb6, ou não sei como usá-lo RE: Process. Start com. WaitForExit () esqueceu de mencionar o usuário do Visual Basic 2006 RE: Process. Start com. WaitForExit () eu preciso usar Process. Startexe, processar - windows. WaitForExit, mas, como ESCOLHA este processo, ele mostra como msdos funciona em cima do meu aplicativo: RE: Process. Start com. WaitForExit () TipGiver (Programador) 19 Oct 06 12:52 esqueceu de mencionar o Visual Basic 200 6 usuários acho que há uma FAQ por ca8msm () que mostra como iniciar um processo. Também há a opção de ter o Windows escondido. Dê uma busca. RE: Process. Start com. WaitForExit () TipGiver (Programador) 19 Out 06 13:01 Err. Não consigo encontrar essas perguntas frequentes. Mas estou certo de que existiu. De qualquer maneira: Dim psi As New System. Diagnostics. ProcessStartInfo psi. CreateNoWindow Falso psi. WindowStyle ProcessWindowStyle. Hidden psi. WorkingDirectory o diretório psi. FileName o nome do arquivo Como usar Process. Start no Visual Basic Por Dan Mabbutt. Visual Basic Expert O método Start do objeto Process é possivelmente uma das ferramentas mais subapreciadas disponíveis para você como programador. Como método, o Start tem uma série de sobrecargas (diferentes conjuntos de parâmetros que determinam exatamente o que o método faz). Nesse caso, as sobrecargas permitem que você especifique praticamente qualquer conjunto de parâmetros que você possa querer passar para outro processo quando ele for iniciado. O que você pode fazer com Process. Start é realmente limitado apenas pelos processos que você pode usar com ele. Continue a ler abaixo. O que é dizer, não há nenhum limite, pois mais continuam a chegar o tempo todo. Se você quiser exibir seu arquivo 34ReadMe34 baseado em texto no Bloco de Notas, ele é tão fácil quanto: Isso pressupõe que o arquivo ReadMe está na mesma pasta que o programa e que o Bloco de Notas é o aplicativo padrão para tipos de arquivos. txt e it39s no ambiente do sistema caminho. Para os VB639ers na audiência, Process. Start é um pouco como o comando VB6 Shell. No VB6, você pode usar algo como: lngPID 61 Shell (34MyTextFile. txt34, vbNormalFocus) Você ainda pode ligar para o comando Shell no VB, mas eu não o recomendaria. Use Process. Start em vez disso. Você pode usar esse código em vez disso para iniciar o Bloco de notas maximizado e criar um objeto ProcessStartInfo que você pode usar para um controle mais preciso: Dim ProcessProperties As New ProcessStartInfo ProcessProperties. FileName 61 34notepad34 ProcessProperties. Arguments 61 34myTextFile. txt34 ProcessProperties. WindowStyle 61 ProcessWindowStyle. Maximized Dim myProcess Como processar 61 Process. Start (ProcessProperties) Continue lendo abaixo Você pode até começar um processo oculto. ProcessProperties. WindowStyle 61 ProcessWindowStyle. Hidden Mas tenha cuidado. A menos que você adicione mais código para finalizar o processo, provavelmente você terá que terminá-lo no Gerenciador de Tarefas. Os processos ocultos normalmente são usados ​​apenas com processos que não possuem qualquer tipo de interface de usuário. Trabalhando com Process. Start como um objeto oferece muita capacidade. Por exemplo, você pode recuperar o nome do processo que foi iniciado. Este código exibirá 34notepad34 na janela Saída: Dim myProcess As Process 61 Process. Start (34MyTextFile. txt34) Console. WriteLine (myProcess. ProcessName) Se você precisa suspender a execução do seu programa até o processo ter terminado (algo que você poderia fazer Com código API na VB6), aqui você vai. Console. WriteLine (34Notepad terminou: 34 amp. MyProcess. ExitTime amp Environment. NewLine amp 34Exit Code: 34 amp myProcess. ExitCode) Isso foi algo que você não poderia fazer com o comando VB6 Shell porque lançou o novo aplicativo de forma assíncrona. O uso do WaitForExit pode causar o problema inverso porque você deve iniciar um processo em um novo tópico se você precisar executá-lo de forma assíncrona. Por exemplo, se você precisar que os componentes permaneçam ativos em um formulário onde um processo foi iniciado e WaitForExit foi executado. Normalmente, esses componentes não serão ativos. Codifique-o e veja por si mesmo. Uma maneira de forçar o processo a parar é usar o método Kill. Este código aguarda dez segundos e depois termina o processo. Descobri que um atraso forçado era necessário para permitir que o processo terminasse de sair para evitar um erro. MyProcess. WaitForExit (10000) 39 se o processo não for concluído dentro de 39 10 segundos, mate-o Se não myProcess. HasExited Então myProcess. Kill () End If Threading. Thread. Sleep (1) Console. WriteLine (34Notepad terminou: 34 amp myProcess. ExitTime amp Environment. NewLine amp 34Exit Code: 34 amp myProcess. ExitCode) Na maioria dos casos, provavelmente é uma boa idéia colocar seu processamento em um bloco Usando para garantir que os recursos usados ​​pelo processo sejam lançados. Usando o meu processo como processo 61 Novo processo 39 Seu código vai aqui Finalizar o uso Para tornar ainda mais fácil trabalhar com isso, há mesmo um componente de processo que você pode adicionar ao seu projeto para que você possa fazer muitas das coisas mostradas acima no design Tempo em vez de tempo de execução. Uma das coisas que isso torna muito mais fácil é codificar os eventos criados pelo processo, como o evento quando o processo foi encerrado. Você também pode adicionar um manipulador usando um código como este. 39 permitem que o processo levante eventos myProcess. EnableRaisingEvents 61 True 39 adicione um manipulador de eventos Exited AddHandler myProcess. Exited, AddressOf Me. ProcessExited Private Sub ProcessExited (ByVal sender As Object, ByVal e As System. EventArgs) 39 Seu código vai aqui End Sub Mas simplesmente selecionar o evento para o componente é muito mais fácil.

No comments:

Post a Comment