1 copy旧贴
话题262131的标题是: 如何用程序断开WNetAddConnection2建立的网络映射? (20分)
分类:Windows API lanny (2000-6-7 23:48:00)
使用
Function NetDriverAdd:Boolean;
var
NR : TNetResource;
begin
with NR do
begin
dwType := RESOURCETYPE_ANY;
lpLocalName := pchar('H:');
lpRemoteName := pchar('//NTSERVER/files');
lpProvider := '';
end;
if WNetAddConnection2(NR, pchar('FileUser'), pchar('FileUser'),
CONNECT_UPDATE_PROFILE) = NO_ERROR then Result := True else Result := False;
end;
建立了连接,如何用程序断开它?
我想应该是用函数WNetCancelConnection2,具体如何用?
唯美少年 (2000-6-8 0:39:00)
和WNetAddConnection2几乎一样呀。
WNetCancelConnection2(NR, CONNECT_UPDATE_PROFILE, True)
其中,NR就是你在使用WNetAddConnection2中的NR.
唯美少年 (2000-6-8 0:42:00)
好象这样也可以:
dwResult := WNetCancelConnection2("H:",
CONNECT_UPDATE_PROFILE, // remove connection from profile
FALSE); // fail if open files or jobs
唯美少年 (2000-6-8 0:43:00)
应该用上面的第二种方法,第一种的参数错了。抱歉
lanny (2000-6-8 23:31:00)
接受答案了.
唯美少年的回答最终被接受。
-----------------------------------------------------------------
2
function GetIPFromName(Name: string): string;
var
WSAData: TWSAData;
HostEnt: PHostEnt;
begin
WSAStartup(2, WSAData);
HostEnt := gethostbyname(PChar(Name));
with HostEnt^ do
Result := Format('%d.%d.%d.%d', [Byte(h_addr^[0]),
Byte(h_addr^[1]), Byte(h_addr^[2]), Byte(h_addr^[3])]);
WSACleanup;
end;