1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
|
'====================================================================================================================
'PROCEDURE DE RAFRAICHISSEMENT DU MENU CONTEXTUEL EN MODE REDUIT
'====================================================================================================================
Public Sub RefreshContext()
'On rafraîchit les onglets du menu contextuel de l'application réduite
Dim MenuBouton1 As New ToolStripMenuItem(Btn01.Text)
Dim MenuBouton2 As New ToolStripMenuItem(Btn02.Text)
Dim MenuBouton3 As New ToolStripMenuItem(Btn03.Text)
Dim MenuBouton4 As New ToolStripMenuItem(Btn04.Text)
CMSNotify.Items.Add(MenuBouton1)
CMSNotify.Items.Add(MenuBouton2)
CMSNotify.Items.Add(MenuBouton3)
CMSNotify.Items.Add(MenuBouton4)
'On rafraîchit par la même occasion le menu contextuel sur l'icône de l'application réduite
Dim RequeteCMS As String = "SELECT * FROM PROGRAMMES"
Dim CommandeCMS As OleDbCommand = New OleDbCommand(RequeteCMS, Connexion)
Dim ImageMenu As IO.MemoryStream
Try
Connexion.Open()
Dim ReaderCMS As OleDbDataReader = CommandeCMS.ExecuteReader()
While ReaderCMS.Read()
'Récupération et écriture du fichier image pour illustrer le programme
Dim RequeteImage As String = "SELECT Image,NomImage FROM PROGRAMMES WHERE ID=" & ReaderCMS(0)
Dim CommandeImage As OleDbCommand = New OleDbCommand(RequeteImage, Connexion)
Dim FichierBytes As Byte()
Dim NomDuFichier As String = ""
Using sdr As OleDbDataReader = CommandeImage.ExecuteReader
sdr.Read()
FichierBytes = DirectCast(sdr(0), Byte())
NomDuFichier = sdr(1)
End Using
'Reconstruction de l'image à partir des bytes
Try
ImageMenu = New IO.MemoryStream(FichierBytes)
Catch ex As Exception
MsgBox("Une erreur est survenue durant la récupération de l'image d'illustration du programme !" & vbCrLf & vbCrLf & ex.Message, vbOKOnly + vbCritical, "MyLauncher")
Exit Sub
End Try
If ReaderCMS(5) = Btn01.Text Then
Dim MenuSubItem1 As New ToolStripMenuItem(ReaderCMS(1).ToString, Image.FromStream(ImageMenu), New EventHandler(AddressOf ContextClick))
MenuBouton1.DropDownItems.Add(MenuSubItem1)
ImageMenu.Close()
ElseIf ReaderCMS(5) = Btn02.Text Then
Dim MenuSubItem2 As New ToolStripMenuItem(ReaderCMS(1).ToString, Image.FromStream(ImageMenu), New EventHandler(AddressOf ContextClick))
MenuBouton2.DropDownItems.Add(MenuSubItem2)
ImageMenu.Close()
ElseIf ReaderCMS(5) = Btn03.Text Then
Dim MenuSubItem3 As New ToolStripMenuItem(ReaderCMS(1).ToString, Image.FromStream(ImageMenu), New EventHandler(AddressOf ContextClick))
MenuBouton3.DropDownItems.Add(MenuSubItem3)
ImageMenu.Close()
ElseIf ReaderCMS(5) = Btn04.Text Then
Dim MenuSubItem4 As New ToolStripMenuItem(ReaderCMS(1).ToString, Image.FromStream(ImageMenu), New EventHandler(AddressOf ContextClick))
MenuBouton4.DropDownItems.Add(MenuSubItem4)
ImageMenu.Close()
End If
End While
Connexion.Close()
Catch ex As Exception
Connexion.Close()
MsgBox(ex.Message)
Exit Sub
End Try
End Sub
'==================================================================================
'PROCEDURE DE GESTION DU CLIC SUR UN SUBITEM DU MENU CONTEXTUEL EN MODE REDUIT
'==================================================================================
Private Sub ContextClick(sender As Object, e As EventArgs)
Dim ValeursItem As List(Of String) = New List(Of String)
'On vide la liste ValeursItem
ValeursItem.Clear()
'Si un programme est bien sélectionné, on le lance
For i = 0 To ListeProgrammes.Count - 1
If ListeProgrammes(i).StartsWith(sender.Text) Then
'On récupère les valeurs de l'item sélectionné
ValeursItem.AddRange(ListeProgrammes(i).Split(";"))
'On lance le programme associé à l'item
Try
Process.Start(ValeursItem(1))
Catch ex As Exception
MsgBox("Une erreur est survenue durant la tentative d'ouverture du programme '" & ValeursItem(0) & "' !" & vbCrLf & vbCrLf & ex.Message, vbOKOnly + vbCritical, "MyLauncher")
Exit Sub
End Try
'On vide la liste ValeursItem
ValeursItem.Clear()
End If
Next
End Sub |
Partager