これに対する解決策をできる限り検索しましたが、他の人がリストしたコードは機能していないようです。
背景: VB を使用してユーザーのユーザー名を取得したい (Visual Studio 2008 を使用)。以前に Excel VBA でこれを行ったことがありますが、以前に使用したコードは機能しません。
ここの MS サイトにリストされているコードを試しました: http://support.microsoft.com/kb/152970
ここにあるわずかに異なるコード: http://www.developerfusion.com/code/4409/get-current-username-in-vbnet/
MS サイトのコードには 2 つの問題があります。
Dim lpBuff As String * 25 が認識されない - '* 25' が認識されないかのように、'string' の後に式の終わりが必要です。と、
「* 25」を削除すると、行に「アクセス違反」が表示されます: ret = GetUserName(lpBuff, 25)
Declare Function GetUserName Lib "advapi32.dll" Alias _ "GetUserNameA" (ByVal lpBuffer As String, _ ByRef nSize As Integer) As Integer Public Function ReturnUserName() As String ' Dimension variables Dim lpBuff As String * 25 Dim ret As Long, UserName As String ret = GetUserName(lpBuff, 25) ReturnUserName = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1) End Function
誰かが私が間違っていることを提案できますか?