界面設計
- 2 個 Label:本地虛擬盤、網絡共享目錄
- 2 個 Edit:
edtLocal (如 "Z:")、edtRemote (如 "\\Server\Share")
- 2 個 Button:
btnConnect、btnDisconnect
核心 API
WNetAddConnection2:建立映射,參數 NETRESOURCE 指定類型、本地名、遠程名。
WNetCancelConnection2:斷開映射,參數本地名、標誌、強制。
完整代碼
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TfrmMain = class(TForm)
btnConnect: TButton;
btnDisconnect: TButton;
edtLocal: TEdit;
Label1: TLabel;
Label2: TLabel;
edtRemote: TEdit;
procedure btnConnectClick(Sender: TObject);
procedure btnDisconnectClick(Sender: TObject);
end;
var
frmMain: TfrmMain;
implementation
{$R *.dfm}
procedure TfrmMain.btnConnectClick(Sender: TObject);
var
NetShare: NETRESOURCE;
begin
FillChar(NetShare, SizeOf(NetShare), 0);
NetShare.dwType := RESOURCETYPE_DISK;
NetShare.lpLocalName := PAnsiChar(edtLocal.Text); // 如 'Z:'
NetShare.lpRemoteName := PAnsiChar(edtRemote.Text); // 如 '\\Server\Share'
NetShare.lpProvider := '';
WNetAddConnection2(NetShare, '', '', CONNECT_UPDATE_PROFILE);
end;
procedure TfrmMain.btnDisconnectClick(Sender: TObject);
var
strLocalName: PAnsiChar;
begin
strLocalName := PAnsiChar(edtLocal.Text);
WNetCancelConnection2(strLocalName, CONNECT_UPDATE_PROFILE, False);
end;
end.
運行效果
- 輸入本地盤符 (如 Z:) 與 UNC 路徑。
- 點「連接」建立映射,資源管理器顯示新盤符。
- 點「斷開」移除映射。
注意事項
- 需管理員權限映射系統盤符。
CONNECT_UPDATE_PROFILE 使映射持久化 (重啟後保留)。
- 錯誤處理可調用
GetLastError 獲取具體錯誤碼。