大家在運用Delphi編寫網絡應用程序時可能會遇到這樣一個問題
一
在Microsoft Windows環境下
Wnet函數主要有
WNetAddConnection
function WNetAddConnection
(var lpNetResource: TNetResource;
lpPassword
DWORD): DWORD; stdcall;
為調用此函數必須填寫
lpNetResouce結構
typedef struct _NETRESOUCE{
DWORD dwScope;
DWORD dwType;
DWORD dwDisplayType;
DWORD dwUsage;
LPTSTR lpLocalName;
LPTSR lpRemoteName;
LPTSr lpProvider;
} NETRESOURCE;
這裡使用dwType
lpProvider幾個參數
dwType : 用於指定網絡的資源類型
有以下RESOURCETYPE_ANY(任何資源)
RESOURCETYPE_DISK(磁盤資源)
RESOURCETYPE_PRINT(打印機資源)
lpLocalName : 指定本地設備
lpRemoteName : 指定遠程網絡名
lpProvider : 指定提供網絡資源的供應商
如為空
WNetAddConnection
lpPassword為遠程資源的口令
lpUserName為遠程資源的用戶名
dwFlags標志位用於指定登錄時是否重新連接
(
PROFILE登錄時重新連接)
WnetCancelConnection
中的函數原型如下
function WNetCancelConnection
(lpName: PChar; dwFlags: DWORD; fForce: BOOL):
DWORD; stdcall;
lpName : 要斷開的遠程網絡資源或本地重定向驅動器
dwFlags : 含義同上
fForce : True表示不管是否有文件打開
強制性斷開網絡驅動器
件打開則函數運行失敗
二
在Delphi的File菜單下選擇New Application
procedure TForm
(Sender : TObject);
var
NetSource : TNetResource;
begin
with NetSource do
begin
dwType := RESOURCETYPE_ANY;
lpLocalName :=
// 將遠程資源映射到此驅動器
lpRemoteName :=
// 遠程網絡資源
lpProvider :=
如為空則使用lpRemoteName的值
end;
WnetAddConnection
//用戶名為Guest
CONNECT_UPDATE_PROFILE);
//下次登錄時重新連接
//此時在Windows資源管理器中可看到網絡驅動器X
if MessageDlg(
mtConfirmation
//不管是否有文件打開
WNetCancelConnection
(
end;
end;
本程序在Delphi
From:http://tw.wingwit.com/Article/program/Delphi/201311/8529.html