Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: raul338 en Diciembre 01, 2010, 07:10:48 pm
-
Buenas!
Me gustaria agregar a mi Notas por red (https://foro.elhacker.net/p/concurso-t308347.0.html;msg1548600#msg1548600) 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 (http://www.leandroascierto.com.ar/categoria/M%C3%B3dulos/articulo/ClaseDDE.php) 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.
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