Autor Tema: [SOLUCIONADO]Como activar otra instancia?  (Leído 2145 veces)

0 Usuarios y 1 Visitante están viendo este tema.

raul338

  • Terabyte
  • *****
  • Mensajes: 894
  • Reputación: +62/-8
  • xD fan!!!!! xD
    • Ver Perfil
    • Raul's Weblog
[SOLUCIONADO]Como activar otra instancia?
« en: Diciembre 01, 2010, 07:10:48 pm »
Buenas!

Me gustaria agregar a mi Notas por red lo necesario para que, si se ejecuta por segunda vez, que se cierre y que mande algun mensaje para que se muestre la primera instancia. Si bien recuerdo una vez vi algo parecido aca, no lo encontre  ???
Y quise usar el clsDDE pero se me crashean las 2 instancias porque es todo muy rapido xD
Lo que hacia era
Intentar conectar al servidor DDE
Si no se conecto, crear el servidor y seguir corriendo
Si se conecto, enviarle un mensaje para que esa instancia se muestre y termino la instancia actual

Probe con FindWindow para ver si hay otra formulario con el mismo caption, pero.. Me devuelve el mismo formulario  ;D ;D

Asi que no se me ocurren mas ideas. A ver si alguno tiene alternativa, espero me pueda ayudar :)



EDIT: Solucionado.

Código: (vb) [Seleccionar]
Private Const MyWindowClass = "ThunderRT6FormDC"
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
      (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function ShowWindow Lib "user32.dll" _
      (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Const SW_SHOWNORMAL = 1

Public Sub Form_Load()
    Dim exC As String
    exC = Caption
    Caption = "ASDASD" & Time$
    hw = FindWindow(MyWindowClass, exC) ' En caso de ejecutarlo en el IDE quitar el MyWindowClass y poner vbNullString
    If hw <> 0 Then
        Call ShowWindow(hw, SW_SHOWNORMAL)
        Call Unload(Me)
        End
    End If
    Caption = exC
    '....
End sub

Espero que les sirva!

Saludos
« última modificación: Diciembre 01, 2010, 07:58:41 pm por raul338 »