怎样记住网上邻居的访问密码? 在delphi中通过网上邻居传输文件时,怎样自动进行用户、密码验证? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 zt:用Delphi 映 射 和断 开 网 络 驱 动 器 海 通 证 券 有 限 公 司电 脑 部(200080)--须 任 荣------------------------------------------------------------------------------------不 少 用 户 在 运 用Delphi 编 写 网 络 应 用 程 序 时 可 能 会 遇 到 这 样 一 个 问 题: 在 一 个 由Windows NT 和Novell Netware 组 成 的 网 络 环 境 中, 应 用 程 序 需 要 使 用Novell 网 上 的 某 些 数 据, 如 果 每 次 都 手 工 在Windows 资 源 管 理 器 中 映 射、 断 开 网 络 驱 动 器, 不 仅 繁 琐 而 且 显 得 不 够 专 业。 本 文 将 介 绍 在Delphi 中 使 用Windows32 API 函 数 解 决 这 一 问 题 的 方 法。 基 本 原 理----在Windows 环 境 下, 应 用 程 序 使 用Windows 网 络 函 数(WNet) 来 实 现 网 络 功 能 而 不 用 关 心 网 络 的 供 应 商 及 具 体 实 现, 因 为WNet 函 数 是 独 立 于 网 络 的。 ----Wnet 函 数 主 要 有:WnetAddConnection , WnetAddConnection2 , WnetAddConnection3 , WnetCancelConnection2 等。 本 文 主 要 用 WnetAddConnection2,WnetCancelConnection2 函 数。 ----WNetAddConnection2 在Windows.pas 中 的 函 数 原 型 如 下: ----function WNetAddConnection2(var lpNetResource: TNetResource;lpPassword, lpUserName: ----PChar; dwFlags: DWORD): DWORD; stdcall; ----为 调 用 此 函 数, 必 须 填 写lpNetResouce 结 构, 此 结 构 的 定 义 为: typedef struct _NETRESOUCE{ DWORD dwScope; DWORD dwType; DWORD dwDisplayType; DWORD dwUsage; LPTSTR lpLocalName; LPTSR lpRemoteName; LPTSr lpProvider;} NETRESOURCE; ----这 里 使 用dwType,lpLocalName,lpRemoteName,lpProvider 几 个 参 数。 其 含 义 如 下: ----dwType : 用 于 指 定 网 络 的 资 源 类 型, 有 以 下RESOURCETYPE_ANY( 任 何 资 源),RESOURCETYPE_DISK( 磁 盘 资 源) , RESOURCETYPE_PRINT( 打 印 机 资 源)。 ----lpLocalName : 指 定 本 地 设 备。 ----lpRemoteName : 指 定 远 程 网 络 名。 ----lpProvider : 指 定 提 供 网 络 资 源 的 供 应 商。 如 为 空, 则 表 示 供 应 商 未 知。 ----WNetAddConnection2 函 数 的lpPassword 为 远 程 资 源 的 口 令。 ----lpUserName 为 远 程 资 源 的 用 户 名。dwFlags 标 志 位 用 于 指 定 登 录 时 是 否 重 新 连 接(0 时 表 示 不 重 新 连 接,CCONNECT_UPDATE_PROFILE 表 示 登 录 时 重 新 连 接)。 ----WnetCancelConnection2 在Windows .pas 中 的 函 数 原 型 如 下: ----function WNetCancelConnection2(lpName: PChar; dwFlags: DWORD; fForce: BOOL):DWORD; stdcall; ----lpName : 要 断 开 的 远 程 网 络 资 源 或 本 地 重 定 向 驱 动 器。 ----dwFlags : 含 义 同 上。 ----fForce : True 表 示 不 管 是 否 有 文 件 打 开, 强 制 性 断 开 网 络 驱 动 器;False 表 示 如 有 文 件 打 开 则 函 数 运 行 失 败。 实 例----在Delphi 的File 菜 单 下 选 择New Application, 在Form1 上 放 置 一 个Button, 在Button1 的Click 事 件 中 键 入 如 下 代 码: procedure TForm1.Button1Click(Sender : TObject);var NetSource : TNetResource;begin with NetSource do begin dwType := RESOURCETYPE_ANY; lpLocalName := ‘X:'; // 将 远 程 资 源 映 射 到 此 驱 动 器 lpRemoteName := ‘\\hqServer\sys'; // 远 程 网 络 资 源 lpProvider := ‘'; // 必 须 赋 值, 如 为 空 则 使 用lpRemoteName 的 值。 end; WnetAddConnection2(NetSource,‘Password',‘Guest', // 用 户 名 为Guest, 口 令 为Password CONNECT_UPDATE_PROFILE); // 下 次 登 录 时 重 新 连 接 // 此 时 在Windows 资 源 管 理 器 中 可 看 到 网 络 驱 动 器X: if MessageDlg(‘Are you sure to disconnect Drive ?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then // 不 管 是 否 有 文 件 打 开, 断 开 网 络 驱 动 器X: WNetCancelConnection2( ‘X:', CONNECT_UPDATE_PROFILE, True); end;end;----本 程 序 在Delphi4.0、PWindows95、Novell Netware 3.12 下 编 译 运 行 通 过。 关于使用fastreport4.2的问题,急 多级主从表问题 求看看const怎么不行呢 还是动态联接库的问题!! 从网上下载了fastreport,请问如何使用 100分相赠!SQL server2000和BDE问题 关于ADOQuery和报表的问题的加分!!!!! 急救!急救!急救! delphiform背景怎么能设置成自己想要的颜色额而不是clyellow clred之类 一个令人困惑的问题? 动态添加Frame请教,有代码。 我想写一个读取Dbisam数据库表内数据返回的dll供外面调用怎么写呀!
断 开 网 络 驱 动 器
海 通 证 券 有 限 公 司
电 脑 部(200080)--须 任 荣------------------------------------------------------------------------------------不 少 用 户 在 运 用Delphi 编 写 网 络 应 用 程 序 时 可 能 会 遇 到 这 样 一 个 问 题: 在 一 个 由Windows NT 和Novell Netware 组 成 的 网 络 环 境 中, 应 用 程 序 需 要 使 用Novell 网 上 的 某 些 数 据, 如 果 每 次 都 手 工 在Windows 资 源 管 理 器 中 映 射、 断 开 网 络 驱 动 器, 不 仅 繁 琐 而 且 显 得 不 够 专 业。 本 文 将 介 绍 在Delphi 中 使 用Windows32 API 函 数 解 决 这 一 问 题 的 方 法。 基 本 原 理----在Windows 环 境 下, 应 用 程 序 使 用Windows 网 络 函 数(WNet) 来 实 现 网 络 功 能 而 不 用 关 心 网 络 的 供 应 商 及 具 体 实 现, 因 为WNet 函 数 是 独 立 于 网 络 的。
----Wnet 函 数 主 要 有:WnetAddConnection , WnetAddConnection2 , WnetAddConnection3 , WnetCancelConnection2 等。 本 文 主 要 用 WnetAddConnection2,WnetCancelConnection2 函 数。 ----WNetAddConnection2 在Windows.pas 中 的 函 数 原 型 如 下: ----function WNetAddConnection2(var lpNetResource: TNetResource;lpPassword, lpUserName: ----PChar; dwFlags: DWORD): DWORD; stdcall; ----为 调 用 此 函 数, 必 须 填 写lpNetResouce 结 构, 此 结 构 的 定 义 为: typedef struct _NETRESOUCE{
DWORD dwScope;
DWORD dwType;
DWORD dwDisplayType;
DWORD dwUsage;
LPTSTR lpLocalName;
LPTSR lpRemoteName;
LPTSr lpProvider;
} NETRESOURCE; ----这 里 使 用dwType,lpLocalName,lpRemoteName,lpProvider 几 个 参 数。 其 含 义 如 下: ----dwType : 用 于 指 定 网 络 的 资 源 类 型, 有 以 下RESOURCETYPE_ANY( 任 何 资 源),RESOURCETYPE_DISK( 磁 盘 资 源) , RESOURCETYPE_PRINT( 打 印 机 资 源)。 ----lpLocalName : 指 定 本 地 设 备。 ----lpRemoteName : 指 定 远 程 网 络 名。 ----lpProvider : 指 定 提 供 网 络 资 源 的 供 应 商。 如 为 空, 则 表 示 供 应 商 未 知。 ----WNetAddConnection2 函 数 的lpPassword 为 远 程 资 源 的 口 令。 ----lpUserName 为 远 程 资 源 的 用 户 名。dwFlags 标 志 位 用 于 指 定 登 录 时 是 否 重 新 连 接(0 时 表 示 不 重 新 连 接,CCONNECT_UPDATE_PROFILE 表 示 登 录 时 重 新 连 接)。 ----WnetCancelConnection2 在Windows .pas 中 的 函 数 原 型 如 下: ----function WNetCancelConnection2(lpName: PChar; dwFlags: DWORD; fForce: BOOL):DWORD; stdcall; ----lpName : 要 断 开 的 远 程 网 络 资 源 或 本 地 重 定 向 驱 动 器。 ----dwFlags : 含 义 同 上。 ----fForce : True 表 示 不 管 是 否 有 文 件 打 开, 强 制 性 断 开 网 络 驱 动 器;False 表 示 如 有 文 件 打 开 则 函 数 运 行 失 败。 实 例----在Delphi 的File 菜 单 下 选 择New Application, 在Form1 上 放 置 一 个Button, 在Button1 的Click 事 件 中 键 入 如 下 代 码:
procedure TForm1.Button1Click(Sender : TObject);
var
NetSource : TNetResource;
begin
with NetSource do
begin
dwType := RESOURCETYPE_ANY;
lpLocalName := ‘X:';
// 将 远 程 资 源 映 射 到 此 驱 动 器
lpRemoteName := ‘\\hqServer\sys';
// 远 程 网 络 资 源
lpProvider := ‘';
// 必 须 赋 值,
如 为 空 则 使 用lpRemoteName 的 值。
end;
WnetAddConnection2(NetSource,‘Password',‘Guest',
// 用 户 名 为Guest, 口 令 为Password
CONNECT_UPDATE_PROFILE);
// 下 次 登 录 时 重 新 连 接
// 此 时 在Windows 资 源 管 理 器 中
可 看 到 网 络 驱 动 器X:
if MessageDlg(‘Are you sure to disconnect Drive ?',
mtConfirmation, [mbYes, mbNo], 0) = mrYes
then
// 不 管 是 否 有 文 件 打 开,
断 开 网 络 驱 动 器X:
WNetCancelConnection2( ‘X:', CONNECT_UPDATE_
PROFILE, True);
end;
end;----本 程 序 在Delphi4.0、PWindows95、Novell Netware 3.12 下 编 译 运 行 通 过。