[Duda]Reconocer un Proceso y activa Boton

Iniciado por NsTeam, 19 Diciembre 2009, 16:49 PM

0 Miembros y 3 Visitantes están viendo este tema.

NsTeam

Hola a todos

tengo una duda... en mi project

weno... lo que para es que quiero q un commandbutton pase de

enabled(false)   A  enbled (true) al abrir un proceso ... ejemplo:

IF notepad.exe esta abierto then

command1.enabled = true

End If


en este caso esto iria dentro de un timer

pero como podria plantear el codigo?  :o

seba123neo

Hola, con FindWindow busca la ventana con nombre de clase Notepad y si te devuelve mayor a 0 es porque esta abierta, tambien podes buscar si existe el proceso llamado notepad.exe, en internet tenes ejemplos de findwindow buscalo, aca tambien hay.

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

raul338

Mira este ejemplo que hize asi al voleo

Código (vb) [Seleccionar]

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
       (ByVal lpClassName As String, _
       ByVal lpWindowName As String) As Long

Sub Form_Load()
    ' La clase del Block de notas es Notepad, para saber la clase de un programa
    ' usa el programa Spy++ que viene con visual studio (hay otros tmb...)
   If FindWindows(vbNullString, "notepad") > 0 Then
        Msgbox "El block de notas esta abierto"
   else
        Msgbox "El block de notas esta cerrado"
  End If
End Sub


Ahora si el nombre de la ventana es variable y no tiene nombre de clase, creo que podrias obtener si se esta ejecutando mediante los procesos activos (la api creo que es EnumProcess)

NsTeam

Cita de: raul338 en 19 Diciembre 2009, 17:16 PM
Mira este ejemplo que hize asi al voleo

Código (vb) [Seleccionar]

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
       (ByVal lpClassName As String, _
       ByVal lpWindowName As String) As Long

Sub Form_Load()
    ' La clase del Block de notas es Notepad, para saber la clase de un programa
    ' usa el programa Spy++ que viene con visual studio (hay otros tmb...)
   If FindWindows(vbNullString, "notepad") > 0 Then
        Msgbox "El block de notas esta abierto"
   else
        Msgbox "El block de notas esta cerrado"
  End If
End Sub


Ahora si el nombre de la ventana es variable y no tiene nombre de clase, creo que podrias obtener si se esta ejecutando mediante los procesos activos (la api creo que es EnumProcess)

gracias

pero me di cuenta q solo reconoce aplicacion y no procesos..

aver... seguire buskando

raul338

Me autocito
Cita de: raul338 en 19 Diciembre 2009, 17:16 PM
Ahora si el nombre de la ventana es variable y no tiene nombre de clase, creo que podrias obtener si se esta ejecutando mediante los procesos activos (la api creo que es EnumProcess)

http://support.microsoft.com/kb/187913

valia buscar lo que dije...