xvr232
Messages postés23Date d'inscriptionmercredi 19 décembre 2001StatutMembreDernière intervention20 novembre 2002
-
28 avril 2002 à 12:26
xvr232
Messages postés23Date d'inscriptionmercredi 19 décembre 2001StatutMembreDernière intervention20 novembre 2002
-
30 avril 2002 à 09:15
slt tt le monde!
J'aimerai savoir comment faire pour, sans verouiller ctrl alt suppr, faire en sorte que qd on fait "fin de tache" sur mon prog ds la liste des taches, y se ferme pas. G trouvé un faux virus qui qd on essaie de le virer par "fin de teche" ouvre plein de msgbox ou l'on doit cliquer. J'aiemrai savoir faire ca en vb.
Autre chose (puisque on y est :-) ), comment faire pour reduire mon prog dans la barre des taches, et le restaurer ensuite par le code (comme si je cliquai sur les bt en haut de la fenetre koi, ms par le code).
TFlorian
Messages postés194Date d'inscriptiondimanche 3 mars 2002StatutMembreDernière intervention19 décembre 20053 28 avril 2002 à 15:12
Bonjour,
pour la premirere question, tu place ton code dans form1_unload ca devrais marcher !
pour la seconde, c'est en fait une api qui fait cela ...
dans un module :
Option Explicit
Public Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
Public Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Public Const NIM_ADD = &H0
Public Const NIM_DELETE = &H2
Public Const NIF_ICON = &H2
Public Const NIF_MESSAGE = &H1
Public Const NIM_MODIFY = &H1
Public Const NIF_TIP = &H4
Public Const WM_LBUTTONDBLCLICK = &H203
Public Const WM_MOUSEMOVE = &H200
Public Const WM_RBUTTONUP = &H205
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
----------------------
dans la form
Private vbTray As NOTIFYICONDATA
Private Sub TrayIt()
vbTray.cbSize = Len(vbTray)
vbTray.hWnd = Me.hWnd
vbTray.uId = vbNull
vbTray.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
vbTray.ucallbackMessage = WM_MOUSEMOVE
vbTray.hIcon = Me.Icon
vbTray.szTip = Me.Caption & vbNullChar
Call Shell_NotifyIcon(NIM_ADD, vbTray)
App.TaskVisible = False
Me.Hide
End Sub
Private Sub UnTrayIt()
vbTray.cbSize = Len(vbTray)
vbTray.hWnd = Me.hWnd
vbTray.uId = vbNull
Call Shell_NotifyIcon(NIM_DELETE, vbTray)
End Sub
Private Sub cmdTrayIt_Click()
Call TrayIt
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Static lngMsg As Long
Dim blnFlag As Boolean, lngResult As Long
lngMsg = X / Screen.TwipsPerPixelX
If blnFlag = False Then
blnFlag = True
Select Case lngMsg
Case WM_LBUTTONDBLCLICK
Me.WindowState = 0
Me.Show
Case WM_RBUTTONUP
lngResult = SetForegroundWindow(Me.hWnd)
Me.PopupMenu mnuFile
End Select
blnFlag = False
End If
End Sub
Private Sub Form_Resize()
If Me.WindowState = 1 Then
Call TrayIt
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
Call UnTrayIt
End Sub
Private Sub mnuSysTray_Click()
MsgBox "systray menu clicked"
Call UnTrayIt
Me.WindowState = 0
Me.Show
End Sub
Voila si tu veus l'avoir en plus au demarage,
dans form1_load tu met
trayit
car pour le ptog present il met l'icon dans la try uniquemant quant tu reduit ton prog ;-)
(Ce code n'est apas entieremant de moi !!)
il est pervu de fair un menu cache avec
cmdTrayIt
et
mnuSysTray
mais ce n'est pas oboguer !