Cours VB.
NET par Philippe Lasserre
Module Module1
Sub Main()
'On appelle une fonction en envoyant une valeur et une fonction lambda.
' La ligne affiche "Success" car 4 est pair.
testResult(4, Function(num) num Mod 2 = 0)
' La ligne affiche "Failure" car 5 n'est pas > 10.
testResult(5, Function(num) num > 10)
End Sub
' Sub testResult a 2 arguments, 'value' un Integer et 'fun' la fonction lambda
' On teste la fonction lambda 'fun(value)'
' en fonction du resultat True ou False on affiche "Success" ou "Failure"
Sub testResult(ByVal value As Integer, ByVal fun As Func(Of Integer, Boolean))
If fun(value) Then
Console.WriteLine("Success")
Else
Console.WriteLine("Failure")
End If
End Sub
End Module
En vb 2010 on peut créer une expression lambda sur plusieurs lignes, on ajoute dans ce cas un 'End Function'.
Dim paireoupas = Function(x)
If (x Mod 2=0) Then
Return "paire"
Else
Return "Impair"
End If
End Function
' Affiche 2.
Console.WriteLine(paireoupas(1))
En plus, on peut créer une Sub lambda.
V-AG - L'espace de nom 'My'.
Ce chapitre est placé ici car il ne concerne pas l'interface, mais il sera plutôt lu dans un second temps.
Cet espace de nom comporte des objets qui sont des chemins d'accès simplifiés à de nombreux domaines
touchant l'application, l'ordinateur, les ressources, les imprimantes...
My qui est extrêmement pratique, est présent à partir de VB 2005 et uniquement dans VB (pas dans C#).
My: le SUPER RACCOURCI.
V-AG-1 - My.Application
My.Application permet d'accéder rapidement aux propriétés de l'application en cours.
Vous pouvez ainsi récupérer des informations sur l'assembly, la culture (langue), de l'application.
- 420 -
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation
de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © - . Aucune reproduction, même partielle, ne peut
être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez
selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
http://plasserre.developpez.com/cours/vb-net/
Cours VB.NET par Philippe Lasserre
Vous pouvez aussi avec My.Apllication.Info récupérer des informations sur le répertoire de travail le titre le copyrhigt
de l'application.
'Culture
MsgBox(My.Application.Culture.ToString) ' culture du thread en cours affiche 'fr-FR'
My.Application.ChangeCulture (it-IT) 'permettra de changer la culture
'Formulaire
'My.Application.OpenForms qui retourne la collection des formulaires ouverts.
'Exemple: rajouter le texte 'ouvert' à la barre des formulaires ouverts:
For Each F As System.Windows.Forms.Form In My.Application.OpenForms
F.Text += "[ouvert]"
Next
'modifier la durée de l'affichage de l'écran Splash
My.Application.MinimumSplashScreenDisplayTime = 2000 '<= A rajouter dans Application_New
'voir chapitre sur écran Splash
'Afficher dans une liste Box les arguments de la ligne de commande
ListBox1.DataSource = My.Application.CommandLineArgs.ToArray
'Afficher les infos de l'application
MsgBox(My.Application.Info.DirectoryPath) 'affiche le nom du répertoire ou est l'exécutable.
MsgBox(My.Application.Info.Title) 'affiche le titre de l'application, de l'exécutable.
MsgBox(My.Application.Info.Version.ToString) 'affiche le nom du répertoire ou est l'exécutable.
MsgBox(My.Application.Info.ProductName) 'affiche le nom de produit de l'application.
V-AG-2 - My.Computer
My.Computer
permet d'accéder aux propriétés de l'ordinateur, du hardware.
Aux ressources logicielles et/ou matérielles de l'ordinateur.
My.Computer.Audio : permet de jouer des fichiers wav, ainsi que les sons systèmes de windows.
My.Computer.Audio.Play("c:\mysound.wav")
My.Computer.Audio.Play("c:\mysound.wav", AudioPlayMode.BackgroundLoop) 'joue en boucle
My.Computer.Audio.Stop 'stop la boucle
My.Computer.Clipboard : permet de récupérer des informations sur le contenu du presse-papier, de récupérer et
de définir son contenu.
If My.Computer.Clipboard.ContainsImage Then
PictureBox1.Image = My.Computer.Clipboard.GetImage
ElseIf My.Computer.Clipboard.ContainsText Then
TextBox1.Text = My.Computer.Clipboard.GetText
End If
My.Computer.Clock : permet de récupérer l'heure courante ainsi que le nombre de millisecondes écoulées depuis
le démarrage.
MsgBox(My.Computer.Clock.LocalTime.ToString) 'Affiche date et heure
My.Computer.FileSystem: permet de trouver des répertoires et d'effectuer les opérations d'entrées/sorties
standards.
- 421 -
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation
de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © - . Aucune reproduction, même partielle, ne peut
être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez
selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
http://plasserre.developpez.com/cours/vb-net/
Cours VB.NET par Philippe Lasserre
On peut ainsi lire le chemin des répertoires habituels:
MsgBox(My.Computer.FileSystem.CurrentDirectory) 'répertoire courant
MsgBox(My.Computer.FileSystem.SpecialDirectories.MyDocuments) 'répertoire documents
MsgBox(My.Computer.FileSystem.SpecialDirectories.CurrentUserApplicationData)'rep données utilisateur en cours
MsgBox(My.Computer.FileSystem.SpecialDirectories.AllUsersApplicationData)'rep données utilisateur en cours
MsgBox(My.Computer.FileSystem.SpecialDirectories.Programs) 'répertoire des programmes
Il y a aussi Destock, MyMusic, MyPictures, ProgramsFiles.
Récupérer le nom du premier disque:
MsgBox(My.Computer.FileSystem.Drives.Item(0).ToString)'affiche 'A:'
La collection Drives contient des items indiquant les disques.
GetDrives et GetDriveInfo permettent de récupérer une collection de disque présent, et des informations sur les
disques.
Un répertoire existe t-il?
MsgBox(My.Computer.FileSystem.DirectoryExists("c:\").ToString) 'affiche True si c:\ existe.
De même pour un fichier:
MsgBox(My.Computer.FileSystem.FileExists("c:\myfiel.txt").ToString) 'affiche True si c:
\myfile.txt existe.
Possibilité de copier, créer, effacer, déplacer répertoires ou fichiers:
Il y a:
CopyDirectory
DeleteDirectory
RenameDirectory
MoveDirectory
CreateDirectory
et
CopyFile
DeleteFile
RenameFile
MoveFile
Exemple: copie d'un répertoire:
My.Computer.FileSystem.CopyDirectory(sourcedirectory, destinationdirectory)
On peut ajouter 2 paramètres, pour afficher une boite de dialogue qui indique la progression de la copie et pour
générer une interruption si l'utilisateur annule le processus (il faut dans ce cas que le code soit dans un Try Catch).
Voir les sous répertoires:
- 422 -
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation
de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © - . Aucune reproduction, même partielle, ne peut
être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez
selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
http://plasserre.developpez.com/cours/vb-net/
Cours VB.NET par Philippe Lasserre
My.Computeur.FileSystem.GetDirectories("c:\").item(0) 'permet de voir le premier sous répertoire.
Afficher dans ListBox1 tous les répertoires qui sont dans C:
ListBox1.DataSource = My.Computer.FileSystem.GetDirectories("c:\")
GetFiles fait de même avec les fichiers et GetDrives pour les disques.
Mettre le contenu d'un fichier texte dans une variable:
Dim LeTexte As String = My.Computer.FileSystem.ReadAllText("c:\devicetable.log")
(Il existe aussi WriteAllText, ReadAllBytes et WriteAllBytes)
FindInFiles permet de retrouver les fichiers contenant un texte.
Dim list As System.Collections.ObjectModel.ReadOnlyCollection(Of String)
list = My.Computer.FileSystem.FindInFiles("C/", "Chaîne à chercher", True,
FileIO.SearchOption.SearchAllSubDirectories)
My.Computer.Info : Obtient des informations concernant l'ordinateur et le système d'exploitation (mémoire vive libre,
nom de l'os, version de l'os, etc).
MsgBox(My.Computer.Info.TotalPhysicalMemory.ToString) 'affiche la mémoire physique
Il y a aussi AvailablePhysicalMemory, TotalPhysicalMemory, TotalVirtualMemory OSVersion, OSFullName..
My.Computer.Keyboard : permet de tester l'état des touches CTRL, ALT, etc� et de simuler l'appuie de touche
grâce à la méthode Sendkeys.
MsgBox(My.Computer.Keyboard.AltKeyDown.ToString)' teste si la touche Alt est enfoncée.
My.Computer.Keyboard.SendKeys("a")' simule l'appuie d'une touche.
My.Computer.Mouse : permet de récupérer des informations sur la souris (présence de la souris, présence de
molette, boutons inversés, etc.)
MsgBox(My.Computer.Mouse.WheelExists.ToString) 'affiche True s'il y a une molette.
My.Computer.Name : récupère le nom de l'ordinateur.
MsgBox(My.Computer.Name.ToString)
- 423 -
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation
de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © - . Aucune reproduction, même partielle, ne peut
être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez
selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
http://plasserre.developpez.com/cours/vb-net/
Cours VB.NET par Philippe Lasserre
My.Computer.Network : permet de télécharger et d'uploader des fichiers, de vérifier si l'ordinateur est connecté à
Internet, d'effectuer des pings, et de récupérer les évènements lors des connexions et déconnexions.
Charger un fichier à partir du réseau:
My.Computer.Network.DownloadFile(AdresseCompleteFichierACharger, DestinationFileNane)
With My.Computer.Network
If .IsAvailable And .Ping(txtIpAdress.text) Then
.UploadFile("c:\filetupload.ext", txtIpAdress.Text)
End If
End With
My.Computer.Ports : permet de récupérer la liste des ports séries, et de les ouvrir.
My.Computer.Printers : permet de récupérer la liste des imprimantes installées et de définir l'imprimante par défaut.
(absent dans la version bêta)
My.Computer.Registry : permet de manipuler la base de registre facilement.
My.Computer.Screen : permet de récupérer les informations concernant les écrans installés.
MsgBox (My.Computer.Screen.Bounds.Height.ToString) 'voir la hauteur de l'écran
V-AG-3 - My.User
My.User permet de récupérer les informations sur l'utilisateur courant.
My.User.Identity.Name
My.User.IsInRole("Administrators") 'contient l'administrateur
V-AG-4 - My.Ressources
My.Ressources permet de manipuler et récupérer très facilement les ressources incorporées à l'assembly.
Mettre une ressource image dans le plan BackGround d'un formulaire:
Me.BackgroundImage = My.Resources.Form1Background
Mettre une ressource image dans le plan BackGround d'un bouton:
- 424 -
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation
de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © - . Aucune reproduction, même partielle, ne peut
être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez
selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
http://plasserre.developpez.com/cours/vb-net/