o Começar método do Processo O objeto é possivelmente uma das ferramentas menos apreciadas disponíveis para um programador. Como um .INTERNET método, Começar possui uma série de sobrecargas, que são conjuntos diferentes de parâmetros que determinam exatamente o que o método faz. As sobrecargas permitem especificar praticamente qualquer conjunto de parâmetros que você queira passar para outro processo quando for iniciado.
O que você pode fazer com Processo. Começar é realmente limitado apenas pelos processos que você pode usar com ele. Se você deseja exibir seu arquivo Leia-me baseado em texto no Bloco de Notas, é tão fácil quanto:
Processo. Iniciar ("ReadMe.txt")ou.
Processo. Iniciar ("bloco de notas", "ReadMe.txt")
Este exemplo assume que o arquivo Leia-me está na mesma pasta que o programa e que o Bloco de Notas é o aplicativo padrão para os tipos de arquivo .txt e está no caminho do ambiente do sistema.
Processo. Iniciar semelhante ao comando shell no VB6
Para programadores familiarizados com o Visual Basic 6,
Processo. Começar é um pouco como o VB 6 Concha comando. No VB 6, você usaria algo como:lngPID = Shell ("MyTextFile.txt", vbNormalFocus)
Usando Processo. Começar
Você pode usar esse código para iniciar o Bloco de notas maximizado e criar um ProcessStartInfo objeto que você pode usar para um controle mais preciso:
Dim ProcessProperties As New ProcessStartInfo
ProcessProperties. FileName = "bloco de notas"
ProcessProperties. Argumentos = "myTextFile.txt"
ProcessProperties. WindowStyle = ProcessWindowStyle. Maximizado
Dim myProcess As Process = Process. Iniciar (ProcessProperties)
Iniciando um processo oculto
Você pode até iniciar um processo oculto.
ProcessProperties. WindowStyle = ProcessWindowStyle. EscondidoMas tenha cuidado. A menos que você adicione mais código para finalizar o processo, provavelmente precisará finalizá-lo no Gerenciador de Tarefas. Processos ocultos normalmente são usados apenas com processos que não possuem nenhum tipo de interface com o usuário.
Recuperando o Nome de um Processo
Trabalhando com Processo. Começar como um objeto .NET oferece muitos recursos. Por exemplo, você pode recuperar o nome do processo que foi iniciado. Este código exibirá "notepad" na janela de saída:
Dim myProcess As Process = Process. Iniciar ("MyTextFile.txt") Console. WriteLine (meuProcesso. Nome do processo)Isso era algo que você poderia não fazer com o VB6 Concha comando porque lançou o novo aplicativo de forma assíncrona. Usando WaitForExit pode causar o problema inverso no .NET porque você precisará iniciar um processo em um novo thread se precisar executar de forma assíncrona. Por exemplo, se você precisar que os componentes permaneçam ativos de uma forma em que um processo foi iniciado e WaitForExit foi executado. Normalmente, esses componentes não estarão ativos. Codifique-o e veja por si mesmo.
Uma maneira de forçar a interrupção do processo é usar o Mate método.
myProcess. Mate()
Esse código aguarda dez segundos e termina o processo.
No entanto, às vezes é necessário um atraso forçado para permitir que o processo seja concluído, evitando um erro.
myProcess. WaitForExit (10000)
'se o processo não for concluído dentro de
10 segundos, mate-o
Se não for o meu processo. HasExited Then
myProcess. Mate()
Fim se
Rosqueamento. Fio. Sono (1)
Console. WriteLine ("O bloco de notas terminou:" _
& myProcess. ExitTime & _
Meio Ambiente. Nova linha & _
"Código de saída:" & _
myProcess. ExitCode)
Na maioria dos casos, provavelmente é uma boa ideia colocar seu processamento em um Usando bloco para garantir que os recursos utilizados pelo processo sejam liberados.
Usando myProcess As Process = New Process
'Seu código vai aqui
Terminar usando
Para tornar tudo isso ainda mais fácil de trabalhar, existe ainda uma Processo componente que você pode adicionar ao seu projeto para executar várias das ações mostradas acima no tempo de design, em vez do tempo de execução.
Uma das coisas que isso facilita muito é a codificação de eventos gerados pelo processo, como o evento em que o processo foi encerrado. Você também pode adicionar um manipulador usando código como este:
'permitir que o processo levante eventos
myProcess. EnableRaisingEvents = True
'adicione um manipulador de eventos Exited
AddHandler myProcess. Saído, _
EndereçoDe mim. ProcessExited
Private Sub ProcessExited (remetente ByVal como objeto, _
ByVal e As System. EventArgs)
'Seu código vai aqui
End Sub
Mas simplesmente selecionar o evento para o componente é muito mais fácil.