• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Weasel

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

8 mensagens neste tópico

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!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

BOm podes por um timer e usar o code do Buttpt sempre a verificar.

Boa sorte e se kizeres manda feedback :P

0

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