如何取消局域网登陆???谢谢(60分)

  • 主题发起人 主题发起人 cyradg
  • 开始时间 开始时间
C

cyradg

Unregistered / Unconfirmed
GUEST, unregistred user!
就是如果试图登陆局域网里的一台计算机,例如//192.168.10.99,如果我当前的

操作系统用户是“User”,而对方(//192.168.10.99)没有“User”用户,那么

登陆//192.168.10.99就会被对方询问登陆用户名和密码,假设如果我已经输入了

用户名(User)和密码登陆了//192.168.10.99,那么再想用“Admin”用户登陆

//192.168.10.99就不可能了,必须注销或重启系统,我目前只有这样的方法,如

果要编程实现,好象是用WNetCancelConnection2函数来实现,但这个函数似乎不灵光

,假设如果我登陆了//192.168.10.99/yy$(就是隐藏目录),那么

WNetCancelConnection2就不行了,取消不了。请问有谁知道怎么编程序实现登陆

和取消登陆局域网内的计算机,谢谢。
 
说白了就是实现类似 net use //192.168.10.99 /delete功能
 
还有net use功能,即以下显示内容

状态 本地 远程 网络

-------------------------------------------------------------------------------
OK //192.168.10.57/ly1$ Microsoft Windows 网络
命令成功完成。

如何获取"//192.168.10.57/ly1$"连接????
 
期待答案
 
哎~~~,就是这样实现,大富翁怎么搞的:
procedure TForm1.WNetGetAllConnect( List: TStrings);
var
NetRes:NETRESOURCE;
EnumHand:DWORD;
Buf:array [0..MAX_PATH] of NETRESOURCE;
nCount,BufSize:DWORD;
I:Integer;
begin
if List=nil then exit;
List.Clear;
FillChar(NetRes,sizeof(NetRes),0);
with NetRes do
begin
dwScope :=RESOURCE_CONNECTED;
dwType :=RESOURCETYPE_ANY;
lpLocalName :=nil;
// lpRemoteName :=nil;//PChar(RemoteRootName);
lpProvider :=nil;
end;
if WNetOpenEnum(RESOURCE_CONNECTED,RESOURCETYPE_ANY,
0,@NetRes,EnumHand)<>NO_ERROR then exit;
BufSize :=sizeof(NETRESOURCE)*MAX_PATH;
nCount :=DWORD(-1);
if WNetEnumResource(EnumHand,nCount,@Buf,BufSize)=NO_ERROR then
begin
for I :=0 to nCount-1 do
begin
List.Add(Buf.lpRemoteName);
end;
end;
WNetCloseEnum(EnumHand);
end;

不过有问题,好象Windows的毛病,例如连接了//192.168.10.99/yy$,且当前有资源管理器打开,在不关闭资源管理器的情况下,运行net use //192.168.10.99/yy$ /delete,呵呵,毛病出来了,用net use查看列表,里面没有//192.168.10.99/yy$,但事实上Windows仍然在对//192.168.10.99/yy$建立连接,因为访问时Windows不再问密码了.
 
后退
顶部