Bonjour,
Je cherche à savoir comment renommer un pc en c#. J'ai entendu parler de l'API SetComputerNameEx mais ça reste flou !
Si quelqu'un pouvait m'aider ?
Bonjour,
Je cherche à savoir comment renommer un pc en c#. J'ai entendu parler de l'API SetComputerNameEx mais ça reste flou !
Si quelqu'un pouvait m'aider ?
Bonjour
Il faut faire:
Pour pouvoir utilier la fonction SetComputerNameEx dans le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 [DllImport("kernel32.dll", SetLastError=true, CharSet=CharSet.Auto)] static extern bool SetComputerNameEx(COMPUTER_NAME_FORMAT NameType, string lpBuffer);
Je débute en c# : est ce qu'un code avec une fonction main et un namespace system serait suffisant ? (msdn = )
Merci d'avance
Cette fonction doit etre placee dans une classe, suffit d'instancier la classe pour pouvoir utiliser la fonction qu'elle contient
En fait samarchpa çà doit marcher comme te l'explique mon collègue Piotrek. Disons que pour l'utilisation des API, le mot-clé dans tes recherches documentaires sur notre site, sera PInvoke. Une fois familiarisé avec ce type d'implémentation tu as une ressource très précieuse aussi qui est http://www.pinvoke.net/Envoyé par samarchpa
Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles
Merci à tous !!
Finalement, j'ai réussi à générer un exe... qui ne fait rien !!
En fait, je n'ai pas trouvé comment appliquer la fonction, j'ai essayé divers trucs sans succès :
Si quelqu'un peut m'aider :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 using System; using System.Runtime.InteropServices; enum COMPUTER_NAME_FORMAT { ComputerNameNetBIOS, ComputerNameDnsHostname, ComputerNameDnsDomain, ComputerNameDnsFullyQualified, ComputerNamePhysicalNetBIOS, ComputerNamePhysicalDnsHostname, ComputerNamePhysicalDnsDomain, ComputerNamePhysicalDnsFullyQualified, ComputerNameMax } namespace PcN { class WindowsAPI { [DllImport("kernel32.dll", SetLastError=true, CharSet=CharSet.Auto)] public static extern bool SetComputerNameEx(COMPUTER_NAME_FORMAT ComputerNetbiosName, string Newname); } } namespace PcN2 { class WindowsAPI2 { static void Main() { try { /*SetComputerNameEx() WindowsAPI() windowsAPI winAPI = New windowsAPI()??? HELP ! */ } catch { } } } }
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 using System; using System.Runtime.InteropServices; enum COMPUTER_NAME_FORMAT { ComputerNameNetBIOS, ComputerNameDnsHostname, ComputerNameDnsDomain, ComputerNameDnsFullyQualified, ComputerNamePhysicalNetBIOS, ComputerNamePhysicalDnsHostname, ComputerNamePhysicalDnsDomain, ComputerNamePhysicalDnsFullyQualified, ComputerNameMax } namespace PcN { class WindowsAPI { [DllImport("kernel32.dll", SetLastError=true, CharSet=CharSet.Auto)] public static extern bool SetComputerNameEx(COMPUTER_NAME_FORMAT ComputerNetbiosName, string Newname); } static void Main() { try { bool result = SetComputerNameEx(COMPUTER_NAME_FORMAT. ComputerNameNetBIOS, "NomPC"); if (result) { Console.Write("Renommage effectué avec succès"); } else { Console.Write("Problème"); } } catch { } } }
Thomas LEBRUN: MCAD.NET, MCTS (Win et Web), MCPD(Win et Web) & Microsoft MVP Client Application Development
WPF par la pratique, mon livre sur WPF ! (également disponible ici ou là)
A la découverte de .NET
!!!
Pour ceux que ça intéresse :
1. Pour que ça fonctionne j'ai dû utilisé "setcomputername" au lieu de "setcomputernameex" car je suis en workgroup.
2. Mais une fois lancé, il s'est passé un truc incohérent après plusieurs reboot la commande echo %computername%" afffichait bien le nouveau nom et l'onglet système l'ancien !! Alors j'ai défini plusieurs variables ainsi :
Il ya sans doute une meilleure façon de faire ?!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 [...] static void Main() { try { bool result = SetComputerNameEx(COMPUTER_NAME_FORMAT.ComputerNamePhysicalNetBIOS, "NouveauNom"); bool result2 = SetComputerNameEx(COMPUTER_NAME_FORMAT.ComputerNameNetBIOS, "NouveauNom"); bool result3 = SetComputerNameEx(COMPUTER_NAME_FORMAT.ComputerNameDnsHostname, "NouveauNom"); bool result5 = SetComputerNameEx(COMPUTER_NAME_FORMAT.ComputerNameDnsFullyQualified, "NouveauNom"); bool result6 = SetComputerNameEx(COMPUTER_NAME_FORMAT.ComputerNamePhysicalDnsHostname, "NouveauNom"); bool result7 = SetComputerNameEx(COMPUTER_NAME_FORMAT.ComputerNamePhysicalDnsFullyQualified, "NouveauNom"); [...]
3. Plus qq détails pour que csc ne bronche plus !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager