一个程序也许会被多个用户运行,如下:
VB.NET WinForm获取运行程序用户名_WinForm


那在VB.NET的WinForm环境下,怎样获取User Name呢?
可从下面的方法:
VB.NET WinForm获取运行程序用户名_ManagementObject_02


代码:

VB.NET WinForm获取运行程序用户名_ManagementObject_03VB.NET WinForm获取运行程序用户名_VB.net_04
Public Shared Function GetProcessOwner(ByVal ProcessName As String) As String
            Dim po = String.Empty
            Dim selectQuery As SelectQuery = New SelectQuery("Win32_Process")
            Dim searcher As ManagementObjectSearcher = New ManagementObjectSearcher(selectQuery)
            Dim moc As ManagementObjectCollection = searcher.Get()
            For Each proc As ManagementObject In moc
                Dim s(1) As String
                proc.InvokeMethod("GetOwner", CType(s, Object()))
                If proc("Name").ToString() = ProcessName & ".exe" Then
                    po = s(1) & "\\" & s(0)
                End If
            Next
            Return po
        End Function
View Code