Ayuda en ejecutable y modulo
Lo que pasa es que no quiero que el programa me abra varias veces el .exe, Solo una sola vez y ya, ¿que tengo que programar en mi modulo de inicio para evitar esto?
Y otra pregunta.. En mi programa hay un modulo que cuando lo minimizo no se pone en la barra de tarea.. mas bien se minimiza en un rectangulo chico arriba de la barra de tareas y no me es posible verlo a menos que cierre todas las ventanas ....a pesar de que el modulo lo tengo en la propiedad de ShowinTaskBar=True
Esto es lo que tengo programado
Modulo de inicio Form1
Private Sub Command1_Click()
Aqui valido al usuario pero no puse el codigo me fui directo al problema con ud's
Form2.Show (1)
End Sub
EL PROBLEMA ME LO DA CUANDO QUIERO MINIMIZAR EL FORMA 2 CUANDO ENTRO A EL
(PD EL FORM1 SI LO MINIMIZA)
De antemano Gracias
Y otra pregunta.. En mi programa hay un modulo que cuando lo minimizo no se pone en la barra de tarea.. mas bien se minimiza en un rectangulo chico arriba de la barra de tareas y no me es posible verlo a menos que cierre todas las ventanas ....a pesar de que el modulo lo tengo en la propiedad de ShowinTaskBar=True
Esto es lo que tengo programado
Modulo de inicio Form1
Private Sub Command1_Click()
Aqui valido al usuario pero no puse el codigo me fui directo al problema con ud's
Form2.Show (1)
End Sub
EL PROBLEMA ME LO DA CUANDO QUIERO MINIMIZAR EL FORMA 2 CUANDO ENTRO A EL
(PD EL FORM1 SI LO MINIMIZA)
De antemano Gracias
hola.
prueba esto
para que no se inicie mas de una vez el programa
al cargar la forma
If App.PrevInstance Then
MsgBox "Este programa [" & App.EXEName & ".exe]" & " ya está en ejecución", vbInformation, "programa"
End 'Terminar esta instancia
end if
programa en bandeja del sistema:
pega esto en un modulo
Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias _
"Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As _
NOTIFYICONDATA) As Long
Public Type NOTIFYICONDATA
cbSize As Long
hwnd As Long
uID As Long
uFlags As Long
uCallbackMessage As Long
hIcon As Long
szTip As String * 64
End Type
Public Const NIM_ADD = &H0
Public Const NIM_MODIFY = &H1
Public Const NIM_DELETE = &H2
Public Const NIF_MESSAGE = &H1
Public Const NIF_ICON = &H2
Public Const NIF_TIP = &H4
'Make your own constant, e.g.:
Public Const NIF_DOALL = NIF_MESSAGE Or NIF_ICON Or NIF_TIP
Public Const WM_MOUSEMOVE = &H200
Public Const WM_LBUTTONDBLCLK = &H203
Public Const WM_LBUTTONDOWN = &H201
Public Const WM_RBUTTONDOWN = &H204
esto en la forma
Public Sub CreateIcon()
Dim Tic As NOTIFYICONDATA
Tic.cbSize = Len(Tic)
Tic.hwnd = Picture1.hwnd
Tic.uID = 1&
Tic.uFlags = NIF_DOALL
Tic.uCallbackMessage = WM_MOUSEMOVE
Tic.hIcon = Picture1.Picture
Tic.szTip = "Visual Basic Demo Project" & Chr$(0)
erg = Shell_NotifyIcon(NIM_ADD, Tic)
End Sub
Public Sub DeleteIcon()
Dim Tic As NOTIFYICONDATA
Tic.cbSize = Len(Tic)
Tic.hwnd = Picture1.hwnd
Tic.uID = 1&
erg = Shell_NotifyIcon(NIM_DELETE, Tic)
End Sub
agraga dos botones de comando
en una pega esto
CreateIcon
en el otro
DeleteIcon
agrega un picturebox y agregale un icono
en el evento mousemove del picturebox pega esto
X = X / Screen.TwipsPerPixelX
Select Case X
Case WM_LBUTTONDOWN
Caption = "Left Click"
Case WM_RBUTTONDOWN
Caption = "Right Click"
Case WM_MOUSEMOVE
Caption = "Move"
Case WM_LBUTTONDBLCLK
Caption = "Double Click"
End Select
este codigo fue tomado de
http://www.allapi.net/
prueba esto
para que no se inicie mas de una vez el programa
al cargar la forma
If App.PrevInstance Then
MsgBox "Este programa [" & App.EXEName & ".exe]" & " ya está en ejecución", vbInformation, "programa"
End 'Terminar esta instancia
end if
programa en bandeja del sistema:
pega esto en un modulo
Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias _
"Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As _
NOTIFYICONDATA) As Long
Public Type NOTIFYICONDATA
cbSize As Long
hwnd As Long
uID As Long
uFlags As Long
uCallbackMessage As Long
hIcon As Long
szTip As String * 64
End Type
Public Const NIM_ADD = &H0
Public Const NIM_MODIFY = &H1
Public Const NIM_DELETE = &H2
Public Const NIF_MESSAGE = &H1
Public Const NIF_ICON = &H2
Public Const NIF_TIP = &H4
'Make your own constant, e.g.:
Public Const NIF_DOALL = NIF_MESSAGE Or NIF_ICON Or NIF_TIP
Public Const WM_MOUSEMOVE = &H200
Public Const WM_LBUTTONDBLCLK = &H203
Public Const WM_LBUTTONDOWN = &H201
Public Const WM_RBUTTONDOWN = &H204
esto en la forma
Public Sub CreateIcon()
Dim Tic As NOTIFYICONDATA
Tic.cbSize = Len(Tic)
Tic.hwnd = Picture1.hwnd
Tic.uID = 1&
Tic.uFlags = NIF_DOALL
Tic.uCallbackMessage = WM_MOUSEMOVE
Tic.hIcon = Picture1.Picture
Tic.szTip = "Visual Basic Demo Project" & Chr$(0)
erg = Shell_NotifyIcon(NIM_ADD, Tic)
End Sub
Public Sub DeleteIcon()
Dim Tic As NOTIFYICONDATA
Tic.cbSize = Len(Tic)
Tic.hwnd = Picture1.hwnd
Tic.uID = 1&
erg = Shell_NotifyIcon(NIM_DELETE, Tic)
End Sub
agraga dos botones de comando
en una pega esto
CreateIcon
en el otro
DeleteIcon
agrega un picturebox y agregale un icono
en el evento mousemove del picturebox pega esto
X = X / Screen.TwipsPerPixelX
Select Case X
Case WM_LBUTTONDOWN
Caption = "Left Click"
Case WM_RBUTTONDOWN
Caption = "Right Click"
Case WM_MOUSEMOVE
Caption = "Move"
Case WM_LBUTTONDBLCLK
Caption = "Double Click"
End Select
este codigo fue tomado de
http://www.allapi.net/
