首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 實現網絡虛擬盤映射與斷開

     編輯:Delphi

界面設計

  • 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.

運行效果

  1. 輸入本地盤符 (如 Z:) 與 UNC 路徑。
  2. 點「連接」建立映射,資源管理器顯示新盤符。
  3. 點「斷開」移除映射。

注意事項

  • 需管理員權限映射系統盤符。
  • CONNECT_UPDATE_PROFILE 使映射持久化 (重啟後保留)。
  • 錯誤處理可調用 GetLastError 獲取具體錯誤碼。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved