用Delphi实现虚拟盘映射

来源:网络时间:2011-08-05 17:05:31

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

  向窗体上添加两个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 输入参数

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

文章内容来源于网络,不代表本站立场,若侵犯到您的权益,可联系我们删除。(本站为非盈利性质网站) 联系邮箱:rjfawu@163.com