Descobrir se um processo (executável) está rodando

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Descobrir se um processo (executável) está rodando

Mensagem por asimoes »

Descobrir se um processo está rodando.

Código: Selecionar todos

   objWMIService := WmiService() 

   colProcesses:= objWMIService:ExecQuery("SELECT * FROM Win32_Process WHERE Caption = 'notepad.exe'")

   For Each objProcess In colProcesses
      MsgInfo(objProcess:Handle +" " +objProcess:Name)
   Next

STATIC FUNCTION WMIService()

   Static oWMI

   Local oLocator

   if oWMI == NIL

      oLocator   := CreateObject( "wbemScripting.SwbemLocator" )
      oWMI       := oLocator:ConnectServer()

   endif

Return oWMI
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Claudio Soto
Colaborador
Colaborador
Mensagens: 566
Registrado em: 27 Ago 2012 12:31
Localização: Uruguay
Contato:

Descobrir se um processo (executável) está rodando

Mensagem por Claudio Soto »

En HMG.3.3.0 tenes las funciones:

Código: Selecionar todos

- EnumProcessesID () ---> return array { nProcessID1, nProcessID2, ... }
- GetCurrentProcessId() --> return nProcessID

- GetProcessName ( [ nProcessID ] ) --> return cProcessName
- GetProcessFullName ( [ nProcessID ] ) --> return cProcessFullName
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Responder