Como Fechar Um Programa A Partir Do Visual Basic

Índice:

Como Fechar Um Programa A Partir Do Visual Basic
Como Fechar Um Programa A Partir Do Visual Basic

Vídeo: Como Fechar Um Programa A Partir Do Visual Basic

Vídeo: Como Fechar Um Programa A Partir Do Visual Basic
Vídeo: Урок #36 Visual Basic - Нестандартная форма окна, перемещение его мышью VB.NET ►◄ 2024, Novembro
Anonim

A flexível e poderosa linguagem de programação Visual Basic. NET, sendo uma das ferramentas especialmente criadas para o desenvolvimento de aplicações para a plataforma Microsoft. NET, permite o aproveitamento integral de todas as suas capacidades. Em particular, os componentes do namespace System. Diagnostics permitem que você interaja com processos, logs de eventos e contadores de desempenho. Por exemplo, você pode fechar um programa do Visual Basic usando a classe Process.

Como fechar um programa a partir do Visual Basic
Como fechar um programa a partir do Visual Basic

Necessário

Microsoft Visual Studio

Instruções

Passo 1

Importe os namespaces System, System. Diagnostics e System. Threading. Adicione as seguintes linhas de código ao início do módulo:

Sistema de Importação

Importa System. Diagnostics

Imports System. Threading

Isso é apenas para a conveniência de usar os componentes associados a esses namespaces.

Passo 2

Pegue os dados do processo a ser fechado. Use o objeto de classe System. Diagnostics. Process. Declare uma variável desta classe:

Dim oProc As Process

Em seguida, use algum método para encontrar o processo necessário.

etapa 3

Se o programa, que precisará ser fechado no futuro, for iniciado pelo aplicativo em desenvolvimento, basta salvar o objeto retornado pelo método Start na inicialização:

oProc = Process. Start ("app.exe")

Passo 4

Se você precisar fechar um processo com um identificador conhecido, use o método estático GetProcessById da classe Process para obter o objeto correspondente:

oProc = Process. GetProcessById (nID)

Onde nID é o identificador numérico do processo.

Etapa 5

Se apenas algumas das características do processo de destino são conhecidas, pesquise-o. Obtenha a lista de processos em execução na máquina local como uma matriz de objetos da classe Process. Use os métodos GetProcesses (retorna todos os processos) ou GetProcessesByName (apenas processos com o nome fornecido):

Dim aoAllProcesses As Process () = Process. GetProcesses ()

Dim aoProcsByName As Process () = Process. GetProcessesByName ("app.exe")

Liste os objetos da matriz usando um loop:

Dim oProc As Process

Para Cada oProc In aoAllProcesses

'ações no oProc

Próximo

Faça um loop pelas propriedades MainModule, MainWindowTitle, ProcessName, etc. para encontrar o objeto desejado.

Etapa 6

Tente encerrar o programa enviando uma mensagem de fechamento para sua janela principal. Chame o método CloseMainWindow do objeto correspondente ao processo de destino. Se necessário, aguarde a conclusão do aplicativo chamando WaitForExit, por exemplo:

oProc. CloseMainWindow ()

oProc. WaitForExit ()

Este método não garante o encerramento do programa, pois a mensagem de fechamento da janela é freqüentemente processada e pode ser ignorada.

Etapa 7

Aguarde um curto período de tempo após chamar CloseMainWindow para garantir que o programa seja encerrado. Use o método Sleep da classe Thread. Em seguida, verifique o status do processo examinando a propriedade HasExited e, se não tiver terminado, chame o método Kill:

Thread. Sleep (6000)

oProc. Refresh ()

Se não for oProc. HasExited Then

oProc. Kill ()

Fim se

Se desejar, você pode pesquisar o status do processo em um loop, emitindo prompts periódicos ao usuário para encerrar o aplicativo sem salvar os dados. E só se você concordar em ligar para Kill.

Etapa 8

Libere recursos do sistema depois que o programa terminar usando o método Close:

oProc. Close ()

Etapa 9

Para evitar erros inesperados durante a execução do aplicativo, coloque todo o algoritmo de fechamento do programa em um bloco Try-Catch-End Try. Implemente o tratamento completo de exceções com mensagens de diagnóstico, se necessário.

Recomendado: