Visual Basic - Como hacer activa una aplicaciones desde VB

Life is soft - evento anual de software empresarial
 
Vista:

Como hacer activa una aplicaciones desde VB

Publicado por Pakor (4 intervenciones) el 24/08/2007 10:59:57
Desde VB arranco el Word pero necesito hacer que sea la aplicacion activa.
¿Como puedo hacerlo?

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Como hacer activa una aplicaciones desde VB

Publicado por Edwin (303 intervenciones) el 24/08/2007 18:39:56
La Función Shell tiene ese parametro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como hacer activa una aplicaciones desde VB

Publicado por JuanC (68 intervenciones) el 25/08/2007 22:39:31
podrías usar SetForegroundWindow de la API
acá te dejo un Sub que no falla...

Private Declare Function apiGetForegroundWindow Lib "user32" Alias "GetForegroundWindow" () As Long
Private Declare Function apiSetForegroundWindow Lib "user32" Alias "SetForegroundWindow" (ByVal hWnd As Long) As Long
Private Declare Function apiGetWindowThreadProcessId Lib "user32" Alias "GetWindowThreadProcessId" (ByVal hWnd As Long, lpdwProcessId As Long) As Long
Private Declare Function apiAttachThreadInput Lib "user32" Alias "AttachThreadInput" (ByVal idAttach As Long, ByVal idAttachTo As Long, ByVal fAttach As Long) As Long
Private Declare Function apiGetCurrentThreadId Lib "kernel32" Alias "GetCurrentThreadId" () As Long

Private Sub SetForegroundWindowEx(ByVal hWnd As Long)
Dim lThread1&, lThread2&
On Error Resume Next
'//Ver la Ayuda de las API's correspondientes
lThread1 = apiGetWindowThreadProcessId(apiGetForegroundWindow(), 0)
lThread2 = apiGetCurrentThreadId()
Call apiAttachThreadInput(lThread2, lThread1, 1)
Call apiSetForegroundWindow(hWnd)
Call apiAttachThreadInput(lThread2, lThread1, 0)
End Sub

Saludos desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

cua?

Publicado por pato (1 intervención) el 25/08/2007 22:51:28
me lo podias explicar un poco mas despacio para que lo entienda?
es que con lo que pones no me sale nada ni siquiera el word

saludos de un gallego desde galisia (comunidad de españa)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: Como hacer activa una aplicaciones desde VB

Publicado por Daivinson (15 intervenciones) el 26/08/2007 00:25:37
Buen día compañero lo puedes realizar de la siquiente forma, coloque el código al cargar el formulario, verificará si esta Microsoft Word abierto simplemente lo activara sino preguntará si deseas abrirlo.
Private Sub Form_Load()
Dim word As Object
On Error Resume Next
'En tal caso que ya word este abierto lo activará, si es excel Microsoft Excel, etc.
AppActivate "Microsoft Word", True
If Err.Number = 5 Then
If MsgBox("Microsoft Word No esta abierto,¿Desea Abrirlo?", vbInformation + vbYesNo + vbDefaultButton2, "Abrir Word") = vbYes Then
Set word = CreateObject("Word.Application")
word.Visible = True
End If
Err.Clear
End If
End Sub
Espero te sirva de ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

¿Seguro que eso funca?

Publicado por peladillas (13 intervenciones) el 26/08/2007 22:33:05
a mi me da error y eso que e puesto la referencia a microdoft word
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿Seguro que eso funca?

Publicado por Daivinson (15 intervenciones) el 28/08/2007 15:22:12
Si funciona compañero te lo vuelvo a colocar sin el evento, para que copies solo el código donde tu quieras:

Dim word As Object
On Error Resume Next
'En tal caso que ya word este abierto lo activará, si es excel Microsoft Excel, etc.
AppActivate "Microsoft Word", True
If Err.Number = 5 Then
If MsgBox("Microsoft Word No esta abierto,¿Desea Abrirlo?", vbInformation + vbYesNo + vbDefaultButton2, "Abrir Word") = vbYes Then
Set word = CreateObject("Word.Application")
word.Visible = True
End If
Err.Clear
End If
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar