FAQ VB.NETConsultez toutes les FAQ
Nombre d'auteurs : 37, nombre de questions : 240, dernière mise à jour : 12 mai 2018 Ajouter une question
Cette FAQ a été réalisée pour répondre aux questions les plus fréquemment posées sur le forum Développement DotNET
Je tiens à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle contient sont correctes. Les auteurs font le maximum, mais l'erreur est humaine. Si vous trouvez une erreur, ou que vous souhaitez devenir rédacteur, lisez ceci.
Sur ce, je vous souhaite une bonne lecture.
- Comment obtenir les adresses IP d'un ordinateur ?
- Comment envoyer un mail par SMTP ?
- Comment télécharger et afficher le contenu d'une page web ?
- Comment savoir si mon PC est connecté à internet ?
- Comment lister les ordinateurs d'un domaine Active Directory ?
- Comment autoriser l'exécution d'une application sur l'intranet ?
- Comment obtenir l'adresse IP d'une machine par son nom ?
- Comment connaître la liste des adresses Ip de la machine ?
- Comment pinguer une machine ?
- Comment publier un objet par client ?
- Comment Download un fichier en vb.net 2005 ?
- Comment Uploader un fichier en vb.net 2005 ?
- Comment récupérer le contenu d'une page Web ?
Pour obtenir les adresses IP d'un ordinateur on utilise la fonction Resolve de la Classe System.Net.Dns
Voici une petite fonction qui le fait. Pour avoir les adresses IP de l'ordinateur local il suffit de l'appeler sans paramètre.
Code vb.net : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | Imports System.Net Function GetIPaddresses(Optional ByVal computername As String = "localhost") As String() Dim saddr() As String Dim addr() As IPAddress = Dns.Resolve(computername).AddressList() Dim i As Integer If addr.Length > 0 Then saddr = New String(addr.Length - 1) {} For i = 0 To addr.Length - 1 saddr(i) = addr(i).ToString Next End If Return saddr End Function |
Il faut ajouter à son projet la référence System.Web.Mail (qui aurait dû s'appeler System.Net.Mail à mon avis).
Ensuite ça se fait tout seul. Exemple :
Code vb.net : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 | Shared Sub Main(ByVal args As String()) Dim msg As MailMessage = New MailMessage msg.From = "expediteur@free.f" msg.To = "atoi@free.fr;alui@free.fr" msg.Cc = "encoreatoi@free.fr" msg.Body = "Bonjour" & Convert.ToChar(10) & "" + "Ceci est le contenu du mail" & Convert.ToChar(10) & "" + "A bientôt" msg.Attachments.Add(New MailAttachment("c:\fichierjoint.txt", MailEncoding.UUEncode)) SmtpMail.SmtpServer = "smtp.nerim.fr" SmtpMail.Send(msg) End Sub |
N'hésiter pas à consulter MSDN sur la classe System.Web.Mail.MailMessage. Elle dispose de nombreuses autres propriétés.
Il y a aussi l'excellent article de Webman
On utilise les classes HttpWebRequest, HttpWebResponse qui encapsulent la communication socket du protocole HTTP. On utilise ensuite la classe StreamReader pour lire le flux de la réponse.
Namespaces à utiliser
Code vb.net : | Sélectionner tout |
1 2 | Imports System.Net Imports System.IO |
Code vb.net : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles Button1.Click Dim HttpWResponse As HttpWebResponse = Nothing Dim sr As StreamReader = Nothing Try Dim HttpWRequest As HttpWebRequest = CType(WebRequest.Create(textBox1.Text), HttpWebRequest) HttpWResponse = CType(HttpWRequest.GetResponse, HttpWebResponse) sr = New StreamReader(HttpWResponse.GetResponseStream) richTextBox1.Text = sr.ReadToEnd Catch ex As Exception MessageBox.Show(ex.Message) Finally If Not (HttpWResponse Is Nothing) Then HttpWResponse.Close End If If Not (sr Is Nothing) Then sr.Close End If End Try End Sub |
On se sert de la fonction InternetGetConnectedState de la dll win32 wininet.dll
Code vb.net : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 | using System.Runtime.InteropServices; ' Déclaration de l'API Private Declare Function InternetGetConnectedState Lib "wininet.dll" ( _ ByRef lpdwFlags As Integer, _ ByVal dwReserved As Integer) As Boolean ' Utilisation de l'API Public Function IsConnected() as Boolean Dim Desc As Integer return InternetGetConnectedState(Desc, 0) End Function |
Pour lister les ordinateurs d'un domaine Active Directory veuillez procéder comme suit :
Code vb.net : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | Imports System.DirectoryServices Private Function GetPCList(ByVal DomainPath As String)As ArrayList Dim PCList As Arraylist Dim DomainEntry As New DirectoryEntry(DomainPath) Dim Entry As DirectoryEntry DomainEntry.Children.SchemaFilter.Add("Computer") For Each entry In DomaineEntry.Children ComputerList.Add(entry.Name) Next Return PCList End Function |
Par défaut, il n'est pas possible d'exécuter une application se trouvant sur l'intranet. Voici la marche à suivre pour autoriser cette exécution :
- Allez dans Paramètres - Panneau de configuration - Outils d'administration - Microsoft .NET Framework Configuration ;
- Dans la fenêtre qui s'affiche, déployez l'arbre jusqu'à atteindre le nœud suivant : Poste de travail - Stratégie de sécurité du runtime - Ordinateur - Groupes de codes - All_Code - LocalIntranet_Zone ;
- Faites un clic droit sur ce dernier noeud puis Propriétés. Dans la fenêtre qui s'affiche allez dans l'onglet Jeu d'autorisations et là passez l'autorisation de LocalIntranet à FullTrust.
Cette opération peut également se faire en ligne de commande avec l'utilitaire caspol.exe qui se trouve dans le répertoire C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 pour le framework 2.0.
Code : | Sélectionner tout |
caspol -q -m -ag 1.2 -zone Intranet FullTrust -n My_Zone
Pour supprimer un groupe c'est aussi simple
Code : | Sélectionner tout |
caspol -q -m -rg My_Zone
Code vb.net : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | Imports System.Net Function GetIPaddresses(ByVal computername As String) As String() Dim saddr As String() = Nothing Dim addr As IPAddress() = Dns.Resolve(computername).AddressList If addr.Length > 0 Then saddr = New String(addr.Length) {} Dim i As Integer = 0 While i < addr.Length saddr(i) = addr(i).ToString i = i + 1 End While End If Return saddr End Function |
La classe IPHostEntry permet de connaître la liste des adresses IP via la propriété AddressList :
Code vb.net : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 | ' Nom de la machine Dim NomMachine As String = Dns.GetHostName ' Récupération de la liste des IP de la machine Dim InfoIps As IPHostEntry = Dns.GetHostEntry(NomMachine) Dim MesIp As IPAddress() = InfoIps.AddressList For Each CurrentIp As IPAddress In MesIp Console.WriteLine("Ip : {0}", CurrentIp.ToString) Next |
Avec la version 2 du Framework, la classe Ping est apparue permettant de faire la même chose que la commande ping utilisée sous Dos :
Code vb.net : | Sélectionner tout |
1 2 3 4 | ' Pinguer un machine Dim monPing As Ping = New Ping Dim Reply As PingReply = monPing.Send("192.168.1.31") Console.WriteLine("Statut du ping : {0}", Reply.Status) |
Afin que l'objet soit unique pour le client mais différent pour chaque client, vous devez définir plusieurs contraintes :
Code vb.net : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | Imports System.ServiceModel <ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)> _ Public Class A Inherits WcfInterface Private i As String Public ReadOnly Property I() As String Get Return I End Get End Property End Class ' ... ' ... Dim host As ServiceHost = New ServiceHost(monInstance) host.Open() |
Encore une fois c'est très simple grace au framework 2.0 :
Code vb.net : | Sélectionner tout |
My.Computer.Network.DownloadFile(Fichier_a_Downloader, path)
Exemple :
Code vb.net : | Sélectionner tout |
My.Computer.Network.DownloadFile("http://www.zonegeeks.com/Documents/Cours/Autre/EAF_ecrit.pdf", "C:\cool.pdf")
Avec le framework 2.0, dans le namespace My, on trouve la méthode :
Code vb.net : | Sélectionner tout |
My.Computer.Network.UploadFile(path, Destination, "", "")
path désigne le chemin complet du fichier à uploader sur le serveur et Destination doit être de la forme : « ftp://login:pass@Votre_serveur.com/Dossier/fichier_uploader.txt »
Exemple :
Avec « coucou » comme login et « 5412 » comme pass
Code vb.net : | Sélectionner tout |
ftp://coucou:5412@ftpperso.free.fr/temp/musique.mp3
Les classes WebRequest et WebResponse vous permettent respectivement de créer des requêtes HTTP et récupérer les résultats de celles-ci.
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | ' Création de la requête Dim objWebRequest As System.Net.WebRequest = System.Net.HttpWebRequest.Create("http://dotnet.developpez.com") ' Envoi de la requête au serveur Dim objWebResponse As System.Net.WebResponse = objWebRequest.GetResponse() ' Stream pour récupérer le résultat Dim objStreamReader As System.IO.StreamReader = Nothing Try ' Récupération du résultat objStreamReader = New System.IO.StreamReader(objWebResponse.GetResponseStream()) ' Lecture du résultat TextBox1.Text = objStreamReader.ReadToEnd() Finally ' Fermeture de la connexion If Not objWebResponse Is Nothing Then objWebResponse.Close() End If End Try |
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.