アプリ版:「スタンプのみでお礼する」機能のリリースについて

ユーザー名の取得がうまくいきません。
どなたか教えて下さい。

環境はVB.net 2003です。

'宣言部
Declare Ansi Function GetUserNameByDeclare Lib "advapi32.dll" _
Alias "GetUserNameA" (ByVal lpBuffer As String, ByRef nSize As Integer) As Integer

'ソース内
  Const UNLEN As Integer = 256
  Dim tusr As String
  Dim ln As Integer

  tusr = Space(UNLEN)
  ln = Len(tusr)

  GetUserNameByDeclare(tusr, ln)

  strdir = "C:\Documents and Settings\" & tusr & "\My Documents"

上記、ユーザー名(tusr)は取得できるんですが、strdirのtusr以下の部分 "\My Documents" が削られてしまいます。
どこが悪いんでしょう?
よろしくお願いします。

A 回答 (1件)

http://okwave.jp/kotaeru.php3?q=1257613
不要なバッファ領域があるため

tusr = New String(CChar(vbNullChar), UNLEN)
GetUserNameByDeclare(tusr, UNLEN)
tusr = Left(tusr, InStr(1, tusr, vbNullChar) - 1)
strdir = "C:\Documents and Settings\" & tusr & "\My Documents"

この回答への補足

参考URLも参考になりました。

補足日時:2005/10/26 12:20
    • good
    • 0
この回答へのお礼

このやり方で無事解決しました、ありがとうございます。

お礼日時:2005/10/26 12:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!