1

WMI を使用して現在の Windows ユーザー名とドメインを取得する簡単な方法があるかどうか疑問に思っていました。Windows API 呼び出しは短いユーザー名を取得するだけなので、ドメイン名の別の呼び出しを行うことになります。いくつかのコードがありますが、自動化エラーが発生します。何か案は?私は正しい道を進んでいると思いますが、WMI については少し初心者です。

関数 GetFullName() を文字列として
    Dim computer As String
    コンピューター = "."
    Dim objWMIService、colProcessListをオブジェクトとして
    Set objWMIService = GetObject("winmgmts:\\" & computer & "\root\cimv2")
    colProcessList = objWMIService.ExecQuery _ を設定します。
        ("SELECT TOP 1 * FROM Win32_Process WHERE Name = 'EXCEL.EXE'")
    Dim uname, udomain As String
    Dim objProcess をオブジェクトとして
    colProcessList 内の各 objProcess
        objProcess.GetOwner uname、udomain
    次
    GetFullName = UCase(udomain) & "\" & UCase(uname)
終了機能

更新:受け入れられた回答に関するコメントを参照してください

4

3 に答える 3

2

どうですか

UserName = Environ("Username")
Domain = Environ("UserDomain")
Combined= Environ("UserDomain") & "\" & Environ("Username")
于 2008-11-13T23:31:15.000 に答える
2
于 2013-04-19T11:41:06.243 に答える
1

WQL には TOP 1 句はありません。そのままにしておくと、クエリが機能するはずです。

"SELECT * FROM Win32_Process WHERE Name = 'EXCEL.EXE'"
于 2008-11-13T17:44:13.000 に答える