ちょっと使える関数ライブラリ(2)

ここでは,Windows関連の情報を得る関数を集めてみました。WSHを使っているものが多いです。

特殊なフォルダのパスを得る

Special Folder の実際の場所を得ます。引数に取得したいフォルダをVBの定数でセットします。

'/**
' * 特殊なフォルダのパスを得る.
' * @return
' * @param ASpecialFolder   以下を指定可能
' *     AllUsersDesktop, AllUsersStartMenu, AllUsersPrograms, AllUsersStartup, Desktop
' *     Favorites, Fonts, MyDocuments, NetHood, PrintHood, Programs, Recent
' *     SendTo, StartMenu, Startup, Templates
' */
Function GetSpecialFolder(ASpecialFolder As Variant) As Variant
    Dim WShell As Object
 
    Set WShell = CreateObject("WScript.Shell")
    GetSpecialFolder = WShell.SpecialFolders(ASpecialFolder)
End Function
 

Windowsにログオンしているユーザ名を得る

 

'/**
' * Windowsにログオンしているユーザ名を得る.
' * @return
' */
Public Function LogonUser() As String
    Dim WshNetwork As Object
    Dim strUserName As Object
 
    Set WshNetwork = CreateObject("WScript.Network")
    LogonUser = WshNetwork.UserName
    Set WshNetwork = Nothing
End Function

 

コンピュータ名を得る

 

'/**
' * コンピュータ名を得る.
' * @return
' */
Public Function ComputerName() As String
    Dim WshNetwork As Object
    Dim strUserName As Object
 
    Set WshNetwork = CreateObject("WScript.Network")
    ComputerName = WshNetwork.ComputerName
    Set WshNetwork = Nothing
End Function

 

IPAddressを得る

実はこの関数はめっちゃいい加減です。複数NICとか仮想IPとかいろいろある環境で正しくIPを取ろうと思うとこうはいきません。

'/**
' * IPAddressを得る
' * IPアドレスのうちデフォルトゲートウェイがセットされているものを取得しているだけ
' * なので違うアダプタのIPを取得する可能性もある.
' * @return
' */
Public Function IPAddress() As String
    Dim objWMIService, IPConfigSet, IPConfig
 
    Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\.\root\cimv2")
    Set IPConfigSet = objWMIService.ExecQuery _
    ("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE")
    For Each IPConfig In IPConfigSet
        If Not (IsNull(IPConfig.IPAddress) Or _
            IsNull(IPConfig.DefaultIPGateway)) Then
            IPAddress = IPConfig.IPAddress(LBound(IPConfig.IPAddress))
            Exit For
        End If
    Next
End Function
 

 

 

トラックバック


URL から "-MoIyadayo" を削除してトラックバックを送信してください。
トラックバックは承認後に表示されます。