環境:Visual Basic 2012
・VB.NETでの端末名の変更
VB.Netで端末名を変更することができなさそうなので、WindowsAPIを使用する方法をとった。その際、「SetComputerName」を見つけたが、これは実は「NET BIOS」名しか変更してくれない。TCP/IPのホスト名を変更するためには「SetComputerNameEx」を使用する必要があった。
※このために、なぜホスト名が変わらないのか少し悩んだ。
・記述方法
'宣言 Declare Auto Function SetComputerNameEx Lib "kernel32.dll" (Byval NameType As Integer, Byval lpBuffer As String) As Integer '関数を作る Public Function SetCompName(s as String) As String Dim NameType As Long NameType = 5 '「NET BIOS」と「ホスト名」を変更する場合「ComputerNamePhysicalDnsHostname」としたいので「5」にする。 Call SetComputerNameEx(NameType,s) End Function
※列挙型「COMPUTER_NAME_FORMAT」
ComputerNameNetBIOS→0
ComputerNameDnsHostname→1
ComputerNameDnsDomain→2
ComputerNameDnsFullyQualified→3
ComputerNamePhysicalNetBIOS→4
ComputerNamePhysicalDnsHostname→5
ComputerNamePhysicalDnsDomain→6
ComputerNamePhysicalDnsFullyQualified→7