タイトル | : Re^2: 共有フォルダについて。 |
記事No | : 11205 |
投稿日 | : 2008/01/22(Tue) 13:18 |
投稿者 | : 魔界の仮面弁士 |
> > この時BからAのCドライブにWork_Cがあることを確認する方法を教えて下さい。 > > http://www.vbstation.net/spec/S2_6.htm
よく見ると、このサンプルは微妙に間違っているようなので注意してください。
処理手順は良いのですが、Unicode API に対して文字列を渡す際に、 Declare Function NetShareGetInfo Lib "netapi32" (ByVal servername As String, … のように String 変数に 再度 Unicode 変換にしてから渡しています。
これは正しくは、Unicode 文字列を示す Byte 配列の先頭要素を渡すべきです。
サンプルのままだと、偶然うまくいくこともありますが、失敗する可能性も高いです。
たとえば「てすと」という共有名であれば成功しても、 「ドキュメント」などの共有名は処理できません。
'これは文字化けせず、「てすと」に戻るのだが Debug.Print StrConv(StrConv("てすと", vbUnicode), vbFromUnicode)
'これは壊れてしまう Debug.Print StrConv(StrConv("ドキュメント", vbUnicode), vbFromUnicode)
|