ネットワークドライブを割り当てる
ローカルにネットワークドライブを割り付けるには 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 定数を渡せば保存されます。
植木さん引数ミスのご指摘ありがとうございます!