很容易,又多分亚!!快来抢亚 (50分)

  • 主题发起人 主题发起人 gentlesir
  • 开始时间 开始时间
G

gentlesir

Unregistered / Unconfirmed
GUEST, unregistred user!
要解决如下问题,请给源程序,多谢
1.一台win98机器共享了一个目录welcome,登陆密码是welcome,这些是已知的。
现在要编一个程序,copy到另一台win98中,执行后打开该共享目录,但不能出现那个
要求输入密码的对话框,也不用网络驱动器映射。
2.要是两台机都是win2000,一台机共享目录welcome,用户Administrator
,登陆密码是welcome,
这时候又应该怎么做?
大家帮帮忙呀,还有分加呀!!


 
guest 帐户启用
 
guest账号启用,那是在win2000下的。就算是启用子后,还是会弹那个登陆窗口,
让你输入guest亚
大佬,帮帮忙亚
 
没做过。
学习~
 
DWORD WNetAddConnection(

LPTSTR lpRemoteName, // pointer to network device name
LPTSTR lpPassword, // pointer to password
LPTSTR lpLocalName // pointer to local device name
);
自己编程吧。
 
The WNetAddConnection function enables the calling application to connect a local device to a network resource.
A successful connection is persistent, meaning that Windows automatically restores the connection during
subsequent logon operations.

This function is provided for compatibility with earlier versions of
Microsoft Windows. For new applications, use the WNetAddConnection2 function.
小弟尝试了下面
procedure TForm1.Button1Click(Sender: TObject);
begin
WNetAddConnection('//192.168.0.1','glopen0','J:');
ShellExecute(handle,'open','Explorer.exe','//192.168.0.1/gentlesir',nil,SW_Show);
end;
小弟刚入门,还是搞不掂,还望大佬送佛送到西呀
,给出源程序吧


 
按给出的要求这样写吧
procedure TForm1.Button1Click(Sender: TObject);
begin
WNetAddConnection('//192.168.0.1/welcome','welcome','J:');
ShellExecute(handle,'open','Explorer.exe','//192.168.0.1/welcome',nil,SW_Show);
end;
 
基 本 原 理

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

 
本来认为不用映射网络驱动盘的方法也可以做的,本人
不想看到这个网络驱动盘在 我的电脑 里面。不过现在看来,
还用映射网络驱动盘的方法(WnetAddConnection2)方便,
映射网络驱动盘后再把该盘隐藏就算了
眼不见为净。
多谢各位大佬 :)
 
后退
顶部