50分求购两个api函数!(50分)

  • 主题发起人 主题发起人 ll710915
  • 开始时间 开始时间
L

ll710915

Unregistered / Unconfirmed
GUEST, unregistred user!
一如何用程序中建立网络映射盘?
二如何修改win2000服务器名?如何得到本机的服务器名?
 
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;
 
1、采用net命令
2、procedure TForm1.Button1Click(Sender: Tobject);
var
ComputerName: array[0..MAX_COMPUTERNAME_LENGTH+1] of char; // holds the name
Size: Integer; // holds the size
begin
{initialize the computer name size variable}
Size := MAX_COMPUTERNAME_LENGTH+1;

{retrieve the computer name}
if GetComputerName(ComputerName, Size) then

Edit1.Text := StrPas(Computername)
else Showmessage('Computer Name Not Found');
end;

procedure TForm1.Button2Click(Sender: TObject);
var
ComputerName: array[0..MAX_COMPUTERNAME_LENGTH+1] of char; // holds the name
begin
{copy the specified name to the ComputerName buffer}
StrPCopy(ComputerName, Edit1.Text);

{set the computer name}
if SetComputerName(ComputerName) then

ShowMessage('Computer Name Reset Setting will be used at next startup')
else ShowMessage('Computer Name Not Reset');
end;

The Tomes of Delphi 3: Win32 Core API Help File by Larry Diehl
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部