• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C#でのWNetAddConnection3の使い方を教えてください)

C#でのWNetAddConnection3の使い方

このQ&Aのポイント
  • C#で共有フォルダの認証を行い、フォルダ内のファイルを読み込む処理をする方法を教えてください。
  • 現在の実装状況では、WNetAddConnection3の戻り値がエラーになり、ログオンがうまくできません。
  • 具体的なサンプルコードや認証の方法を教えていただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

NETRESOURCE構造体の定義が違うからでしょう メンバーが足りないのです public struct NETRESOURCE {   public int dwScope;     // Added   public int dwType;   public int dwDisplayType;  // Added   public int dwUsage;     // Added   public string lpLocalName;   public string lpRemoteName;   public string lpComment;  // Added   public string lpProvider; } メンバーが足りないためにAPIの中で違う場所を参照してしまうため共有資源の名前が受け取れていないのです VS2005付属のMSDNなどで NETRESOUSE構造体を確認しましょう ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.WIN32COM.v10.en/wnet/wnet/netresource_str.htm

626-stitch
質問者

お礼

申し訳ありません。 パスワードが間違っていただけのようです。 教えていただいた構造体で正しく動作しました。 ありがとうございました。

626-stitch
質問者

補足

早速のご回答、ありがとうございます。 MSDNにある「WNetAddConnection3 関数は、 構造体の上記以外のメンバを無視します。」 というのは宣言をしなくてもいいということではないのですね。 教えていただいた通りに定義をして、特に値を設定することなく実行しました。 WNetAddConnection3の戻り値が「1208」になりましたが、以降は同じエラー結果です。 また、C#で関係するかわかりませんでしたが、どこかでポインタがどうこうという内容を読んだため、 [StructLayout(LayoutKind.Sequential)] public struct NETRESOURCE { public int dwScope;     // Added public int dwType; public int dwDisplayType;  // Added public int dwUsage;     // Added [MarshalAs(UnmanagedType.LPWStr)] public string lpLocalName; [MarshalAs(UnmanagedType.LPWStr)] public string lpRemoteName; [MarshalAs(UnmanagedType.LPWStr)] public string lpComment;  // Added [MarshalAs(UnmanagedType.LPWStr)] public string lpProvider; } で実行してみたところ WNetAddConnection3の戻り値が「67」になり、以降は同じエラー結果です。 他にはどこを気をつけたほうがいいのでしょうか? また、WNetAddConnection3の戻り値の内容がどのようなエラーを指しているのかがわかるサイト等を教えていただけたらと思います。 以上、よろしくお願いいたします。

関連するQ&A