如此实现与内网的一台机建立IPC$连接?

l0v3_y1n9 2007-01-05 05:40:27
如题...
如何实现呢?希望牛人可以给出代码....
谢谢先~!
...全文
286 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluetunes 2007-01-11
  • 打赏
  • 举报
回复
可以这样:
WinExec('command.com /c net use \\192.168.0.1\ipc$ 123456 /user:administrator ',SW_SHOW);

dctony 2007-01-11
  • 打赏
  • 举报
回复
//建立远程连接 xPath: 远程路径 xNetUser/xNetPassword: 可以指定用户名及密码
function AddNetConnection(xPath, xNetUser, xNetPassword: string): string;
var
mNetSource: TNetResource;
mNetUser, mNetPassword: PChar;
mErrorCode: Cardinal;
begin
Result := '';
if Copy(xPath, 1, 2) <> '\\' then Exit; //非远程方式,退出

try
with mNetSource do
begin
dwScope := RESOURCE_GLOBALNET;
dwType := RESOURCETYPE_ANY;
dwDisplayType := RESOURCEDISPLAYTYPE_SHARE;
dwUsage := RESOURCEUSAGE_CONNECTABLE;
lpLocalName := nil; //这里可以指定本地驱动器名,则将xPath映射为本地驱动器,传nil,只与xPath建立远程连接
lpRemoteName := LPTSTR(xPath);
lpComment := nil;
lpProvider := nil;
end;
if xNetUser <> '' then
begin
mNetUser := LPTSTR(xNetUser);
mNetPassword := LPTSTR(xNetPassword);
end
else
begin
mNetUser := nil;
mNetPassword := nil;
end;

mErrorCode := WNetAddConnection2(mNetSource, mNetPassword, mNetUser, CONNECT_UPDATE_PROFILE);
if mErrorCode <> NO_ERROR then //映射失败
Result := Format('与 %s 建立网络连接时发生错误! 错误信息: %s', [xPath, SysErrorMessage(mErrorCode)]);
except
on E: Exception do
Result := Format('与 %s 建立网络连接时发生错误! 错误信息: %s', [xPath, E.Message]);
end;
end;

//mPath如果传入远程路径,则断开与远程路径的网络连接
//mPath如果传入本地驱动器名,则断开本地驱动器
function CancelNetConnection(xPath: string): string;
var
mErrorCode: Cardinal;
begin
Result := '';
if Copy(xPath, 1, 2) <> '\\' then Exit; //非远程方式,退出

try
mErrorCode := WNetCancelConnection2(LPTSTR(xPath), CONNECT_UPDATE_PROFILE, True);
if mErrorCode = NO_ERROR then
Result := Format('与 %s 断开网络连接时发生错误! 错误信息: %s', [xPath, SysErrorMessage(mErrorCode)]);
except
on E: Exception do
Result := Format('与 %s 断开网络连接时发生错误! 错误信息: %s', [xPath, E.Message]);
end;
end;
l0v3_y1n9 2007-01-11
  • 打赏
  • 举报
回复
晕,如何实现不需要第三方工具的?
jadeluo 2007-01-11
  • 打赏
  • 举报
回复
上面的可以简化为:
WinExec('net use \\192.168.0.1\ipc$ 123456 /user:administrator ',SW_SHOW);

只有内部命令才需要调用command.com或cmd.exe

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧