Ir para o conteúdo
Weasel

[VB.NET '05] Verificar se uma aplicação é aberta (...)

Mensagens Recomendadas

Weasel    3
Weasel

Boas!

É o seguinte, é possível fazer uma aplicação em VB que verifique quando uma certa aplicação (sei o nome do executável, e esse não muda) para quando essa aplicação for fechada o meu programa VB executar uma certa acção ?

Se sim, como posso fazer isso ?

A ideia era o programa em Vb corria quando o computador é iniciado, e ficava "á espera" por exemplo só com um icon na Tray, e quando o programa XPTO for aberto...e depois fechado, o meu programa em VB vái executar uma certa acção.

Espero ter-me explicado bem :P

Obrigado!

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pedrotuga    31
pedrotuga

Isso não tem directamente a ver com o executavel em si.

Terás que aceder ao sistema operativo e verificar se determinado processo está activo.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Weasel    3
Weasel

Isso não tem directamente a ver com o executavel em si.

Terás que aceder ao sistema operativo e verificar se determinado processo está activo.

Eu falei no executável, pois o nome do processo vai ser o nome do executável...pelo menos neste caso é...

Mas como eu posso verificar se o processo está activo, e mais importante quando é fechado novamente, porque eu só quero "agir" depois do programa ser terminado.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Weasel    3
Weasel

Eu podia por um timer a correr os processos abertos para verificar se o processo XPTO está a correr, mas isso não irá ser pesado para o sistema ?

Não existe maneira de monitorizar apenas o processo que quero ? (mesmo antes de ele estar aberto).

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Ziwdon    0
Ziwdon

Basta veres quais os processos que estao a correr quando se inicia o PC e defines uma variavel boolean que indica se o teu programa esta a correr (que será False no inicio). Com um timer, vais verificando os processos que estao a correr e quando a tua aplicação for aberta a variavel boolean passa para True. Continuas com o timer, e quando o processo ja nao existir, como a variavel boolean está em True significa que o processo ja esteve aberto. Depois fazes executar a acção que queres.

Por exemplo...para veres se um processo esta a correr podes fazer:

Dim activo as Boolean
Dim myprocesses As Process()
myprocesses = Process.GetProcessesByName("NOME DO PROCESSO*") 'obter processos com o nome X
If myprocesses.Length > 0 Then 'se for maior que 0 então existem processos com o nome X
    activo = True 'está a correr
Else
    activo = False 'não está a correr
End If

' * O nome do processo não pode conter o '.exe'

Espero ter ajudado.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Weasel    3
Weasel

Era como pensava fazer mas desconhecia esse comando para obter pelo nome, ia fazer com ciclo for, mas assim é muito mais simples e rápido, obrigado!

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade