Lograr que una aplicaci贸n tome el foco
    
		    Hola Genios:
He estado quemando las pesta帽as tratando de encontrar la manera de que a traves de VB se le pueda entregar el foco a una aplicaci贸n distinta.
Me explico:
He creado una aplicaci贸n que manipula informaci贸n de una BD de Access, dentro de lo que debe manejar, son unos informes que ya estan creados en Access y algunos de ellos son parametrizados (Se les debe digitar un valor por pantalla para que muestre los registros respectivos), para poderlos visualizar en VB sin que se abra Access he creado una rutina que manipula el Snap View y funciona muy bien con informes Gen茅ricos (No parametrizados), pero cuando trato de ejecutar un reporte parametrizado, se abre el cuadro de di谩logo que pide el par谩metro, pero no toma el foco, lo que provoca que quede debajo de las ventanas de las aplicaciones abiertas, teniendo que presionar las teclas ALT+TAB para poder que tome el foco.
No se si me entiendan, pero lo que necesito es que esa ventanita tome el foco cuando se ejecuta el informe.
Cualquier ayuda ser谩 inmensamente agradecida!!
Saludos,
Mellileo !!!
	    
    He estado quemando las pesta帽as tratando de encontrar la manera de que a traves de VB se le pueda entregar el foco a una aplicaci贸n distinta.
Me explico:
He creado una aplicaci贸n que manipula informaci贸n de una BD de Access, dentro de lo que debe manejar, son unos informes que ya estan creados en Access y algunos de ellos son parametrizados (Se les debe digitar un valor por pantalla para que muestre los registros respectivos), para poderlos visualizar en VB sin que se abra Access he creado una rutina que manipula el Snap View y funciona muy bien con informes Gen茅ricos (No parametrizados), pero cuando trato de ejecutar un reporte parametrizado, se abre el cuadro de di谩logo que pide el par谩metro, pero no toma el foco, lo que provoca que quede debajo de las ventanas de las aplicaciones abiertas, teniendo que presionar las teclas ALT+TAB para poder que tome el foco.
No se si me entiendan, pero lo que necesito es que esa ventanita tome el foco cuando se ejecuta el informe.
Cualquier ayuda ser谩 inmensamente agradecida!!
Saludos,
Mellileo !!!
		    'EN UN MODULO CUALQUIERA************************************
Public Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Public Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Public Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As Long, ByVal lpWindowName As Long) As Long
Public Declare Function Putfocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long
Public Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Long) As Long
Public Declare Function GetDesktopWindow Lib "user32" () As Long
Public mWnd As Long
Public Const GW_HWNDNEXT = 2
'EN DONDE SE LLAMAN LAS APLICACIONES****************************************
Dim Pid As Long
LockWindowUpdate GetDesktopWindow
Pid = Shell(App.Path & "CalcCURP.exe", vbNormalFocus)
If Pid = 0 Then MsgBox "Error Iniciando la Aplicaci贸n"
mWnd = InstanceToWnd(Pid)
SetParent mWnd, Me.hwnd
Putfocus mWnd
LockWindowUpdate False
	    
    Public Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Public Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Public Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As Long, ByVal lpWindowName As Long) As Long
Public Declare Function Putfocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long
Public Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Long) As Long
Public Declare Function GetDesktopWindow Lib "user32" () As Long
Public mWnd As Long
Public Const GW_HWNDNEXT = 2
'EN DONDE SE LLAMAN LAS APLICACIONES****************************************
Dim Pid As Long
LockWindowUpdate GetDesktopWindow
Pid = Shell(App.Path & "CalcCURP.exe", vbNormalFocus)
If Pid = 0 Then MsgBox "Error Iniciando la Aplicaci贸n"
mWnd = InstanceToWnd(Pid)
SetParent mWnd, Me.hwnd
Putfocus mWnd
LockWindowUpdate False
