用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 输入参数
单击“连接”按钮可以映射虚拟盘,单击“断开”按钮可以断开虚拟盘。