ネットワークドライブを割り当てる

ローカルにネットワークドライブを割り付けるには WNetAddConnection2 APIを使用します(WNetAddConnection3ってのもある・・・)。以下の例は "\\Borland\Delphi\"(コンピュータ名 Borland の 共有名 Delphi)をローカルの "F:"ドライブにマッピングします。

■ ネットワークドライブを割り当てる例
  procedure TForm1.Button6Click(Sender: TObject);
  var
    NetResource : TNetResource;
  begin
    with  NetResource do  begin
      dwScope       :=    RESOURCE_GLOBALNET;
      dwType        :=    RESOURCETYPE_DISK;
      dwDisplayType :=    RESOURCEDISPLAYTYPE_GENERIC;
      dwUsage       :=    RESOURCEUSAGE_CONNECTABLE;
      lpLocalName   :=    'F:';
      lpRemoteName  :=    '\\Borland\Delphi\';
      lpComment     :=    '';
      lpProvider    :=    '';
    end;
    IF  WNetAddConnection2(NetResource,
          ''{<PASS},''{<USER},0 {<接続の保存 0 or CONNECT_UPDATE_PROFILE}) <> NO_ERROR  then  begin
      ShowMessage('Error');
    end;
end;

WNetAddConnection2関数の第一引数には TNetResource構造体を渡しますが、この例はちょっと適当です。第2引数にはユーザー名、その次がパスワードです。最後のパラメータはこの情報を次回ログオン時に復元するか、要するにこの設定を保存するかどうかを指定します。ゼロを指定すれば保存しません。CONNECT_UPDATE_PROFILE 定数を渡せば保存されます。

植木さん引数ミスのご指摘ありがとうございます!