• Viernes 3 de Mayo de 2024, 04:58

Autor Tema:  Re: Enfoque a una aplicacion  (Leído 807 veces)

SpeedCAD

  • Miembro activo
  • **
  • Mensajes: 76
    • Ver Perfil
    • http://webcindario.com/speedcad
Re: Enfoque a una aplicacion
« en: Martes 11 de Noviembre de 2003, 15:04 »
0
Hola...

Necesito saber si una aplicacion a recibido el enfoque. Yo se que con AppActivate puedo darle el enfoque a una aplicacion pero al momento de darlo necesito que me ponga un valor True o false si recibe el enfoque True y si no False. Intente con AppActivate pero no me funciona...

Gracias de antemano
Un saludo de SpeedCAD... \":)\"
CHILE
http://webcindario.com/speedcad

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Enfoque a una aplicacion
« Respuesta #1 en: Martes 11 de Noviembre de 2003, 16:05 »
0
Hola SpeedCad.

El siguiente código controla cuando una aplicación NO lanzada desde vb termina. No es exactamente lo que pides, pero tal vez te sirva...

Private Const SYNCHRONIZE = &H100000
Private Const INFINITE = -1&

Private Type PROCESS_INFORMATION
    hProcess As Long
    hThread As Long
    dwProcessID As Long
    dwThreadID As Long
End Type

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Private Declare Function OpenProcess Lib "Kernel32.dll" (ByVal dwDesiredAccessas As Long, ByVal bInheritHandle As Long, ByVal dwProcId As Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long

Private Sub Sincronizar()
   
    Dim pid As PROCESS_INFORMATION
    Dim lngRc As Long
    lngRc = FindWindow(vbNullString, "Pon aquí el título de la ventana de la aplicación")
    lngRc = GetWindowThreadProcessId(lngRc, pid.hProcess)
    lngRc = OpenProcess(SYNCHRONIZE, False, pid.hProcess)
    If lngRc <> 0 Then
        lngRc = WaitForSingleObject(lngRc, INFINITE)
        MsgBox "Fin del proceso"
    Else
        MsgBox "Fallo sincronizando"
    End If

End Sub

Espero que te sirva.
Chao.