用Delphi实现虚拟盘映射


  本实例演示如何映射和断开网络 虚构盘 。

  向窗体上增加两个TLabel组件、两个TEdit组件和两个TButton组件,设计 实现的主界面如图1所示 。

  图1 主界面

  首先增加“衔接”按钮的响应代码,在其中调用WNetAddConnection2函数,依据消费者输入的当地 虚构盘和网络共享目录来映射 虚构盘,响应代码如下:

procedure TfrmMain.btnConnectClick(Sender: TObject);

var

 NetShare :NETRESOURCE;

begin

 NetShare.dwType := RESOURCETYPE_DISK;

 NetShare.lpLocalName := PAnsiChar(edtLocal.Text);

 NetShare.lpRemoteName := PAnsiChar(edtRemote.Text);

 NetShare.lpProvider :=’’;

 WNetAddConnection2(NetShare, ’’, ’’, CONNECT_UPDATE_PROFILE);

end;

   而后增加“断开”按钮的响应代码,在其中调用WNetCancelConnection2函数断开消费者输入的当地 虚构盘,响应代码如下:

procedure TfrmMain.btnDisconnectClick(Sender: TObject);

 var

  strLocalName : PChar;

 begin

  strLocalName:=PAnsiChar(edtLocal.Text);

  WNetCancelConnection2(strLocalName,CONNECT_UPDATE_PROFILE,False);

end;

  程序代码如下:

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);

 private

  { Private declarations }

 public

  { Public declarations }

 end;

var

 frmMain: TfrmMain;

 implementation

 {$R *.dfm}

 procedure TfrmMain.btnConnectClick(Sender: TObject);

var

 NetShare :NETRESOURCE;

begin

 NetShare.dwType := RESOURCETYPE_DISK;

 NetShare.lpLocalName := PAnsiChar(edtLocal.Text);

 NetShare.lpRemoteName := PAnsiChar(edtRemote.Text);

 NetShare.lpProvider :=’’;

 WNetAddConnection2(NetShare, ’’, ’’, CONNECT_UPDATE_PROFILE);

end;

procedure TfrmMain.btnDisconnectClick(Sender: TObject);

var

 strLocalName : PChar;

begin

 strLocalName:=PAnsiChar(edtLocal.Text);

 WNetCancelConnection2(strLocalName,CONNECT_UPDATE_PROFILE,False);

end;

end.

   保留文件, 而后按F9键运行程序,程序运行的初始画面如图2所示 。

  在“当地 虚构盘”对应的文本框中输入一个有效的当地 虚构盘,在“网络共享目录”对应的文本框中输入一个有效的网络共享目录,如图3所示 。

图2 程序运行的初始画面

图3 输入参数

单击“衔接”按钮 可以映射 虚构盘,单击“断开”按钮 可以断开 虚构盘 。