顶者有份!~~如何用程序访问局域网上的共享目录 我要问的问题是: 我知道了该共享目录所在机的密码了, 如何在程序里设置好用户密码,这样不必每次我的程序访问这个目录的时候都要输入密码! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 function LoginServer(sFileDir, sUserName, sPassword:String):Boolean;var iCount : Integer; bSuccess : Boolean; lpNetResource : NETRESOURCE; Flags,lpResult,lpBufferSize,dwRet : DWORD; lpAccessName : Array [0..1024] of char;begin lpNetResource.dwScope := RESOURCE_GLOBALNET; lpNetResource.dwType := RESOURCETYPE_DISK; lpNetResource.dwDisplayType := RESOURCEDISPLAYTYPE_SHARE; lpNetResource.dwUsage := RESOURCEUSAGE_CONTAINER; lpNetResource.lpLocalName := nil; lpNetResource.lpRemoteName := PChar(sFileDir); lpNetResource.lpProvider := nil; Flags := 0 or CONNECT_PROMPT or CONNECT_UPDATE_PROFILE; lpResult := 0; lpBufferSize := 1024; dwRet := WNetUseConnection(HWND(nil),lpNetResource,PChar(sPassword),PChar(sUserName),Flags,lpAccessName,lpBufferSize,lpResult); if dwRet = NO_ERROR then begin Result := true; end else begin Result := false; end;end; localname:本地磁盘号 如:Y: Z: remotename: 共享路径 如 :\\server\shareusername : 用户名password: 密码function connectserver(localname: string; remotename: string; username: string; password: string): boolean;var NetSource: TNetResource; Errinfo: longint;begin with NetSource do begin dwType := RESOURCETYPE_ANY; //RESOURCETYPE_DISK lpLocalName := pchar(localname); // 将远程资源映射到此驱动器 lpRemoteName := pchar(remotename); // 远程网络资 源 lpProvider := ''; // 必须赋值,如为空则使用lpRemoteName 的值。 end; ErrInfo := WnetAddConnection2(NetSource, pchar(password), pchar(username), 0); result := (ErrInfo = NO_ERROR);end;API: WnetAddConnection2 function LoginServer(sFileDir, sUserName, sPassword:String): boolean;var iCount : Integer; bSuccess : Boolean; lpNetResource : NETRESOURCE; Flags,lpResult,lpBufferSize,dwRet : DWORD; lpAccessName : Array [0..1024] of char;begin lpNetResource.dwScope := RESOURCE_GLOBALNET; lpNetResource.dwType := RESOURCETYPE_DISK; lpNetResource.dwDisplayType := RESOURCEDISPLAYTYPE_SHARE; lpNetResource.dwUsage := RESOURCEUSAGE_CONTAINER; lpNetResource.lpLocalName := nil; lpNetResource.lpRemoteName := PChar(sFileDir); lpNetResource.lpProvider := nil; Flags := 0 or CONNECT_PROMPT or CONNECT_UPDATE_PROFILE; lpResult := 0; lpBufferSize := 1024; dwRet := WNetUseConnection(HWND(nil),lpNetResource,PChar(sPassword),PChar(sUserName),Flags,lpAccessName,lpBufferSize,lpResult); if dwRet = NO_ERROR then begin Result := true; end else begin Result := false; end;end;procedure TForm1.Button2Click(Sender: TObject);begin if LoginServer('\\tchtc-svr','tchtc','tchtc') then showmessage('成功登录\\tchtc-svr') else ShowMessage('登录\\tchtc-svr');end; 求教如何复制一个被打开的文件 bpl包的一个问题 delphi selectdirectory如何多选 一个独立的unite老是编译不成功,大家帮忙看看 隐藏进程送50 高手帮忙,锁定鼠标和键盘问题 没有找到浮点数转整数的函数,我只有自己写一个(慢的很),但是最后找到了, 找这些东西有什么诀窍么? 一个关于SQL的问题 OleContainer.SaveToFile的文件用Word怎么打不开? 怎样列出Access所有的表名? 紧急求助!!!!!Delphi编程问题!!!!!!(要不会出人命的) 对话框问题
var
iCount : Integer;
bSuccess : Boolean;
lpNetResource : NETRESOURCE;
Flags,lpResult,lpBufferSize,dwRet : DWORD;
lpAccessName : Array [0..1024] of char;
begin
lpNetResource.dwScope := RESOURCE_GLOBALNET;
lpNetResource.dwType := RESOURCETYPE_DISK;
lpNetResource.dwDisplayType := RESOURCEDISPLAYTYPE_SHARE;
lpNetResource.dwUsage := RESOURCEUSAGE_CONTAINER;
lpNetResource.lpLocalName := nil;
lpNetResource.lpRemoteName := PChar(sFileDir);
lpNetResource.lpProvider := nil; Flags := 0 or CONNECT_PROMPT or CONNECT_UPDATE_PROFILE; lpResult := 0;
lpBufferSize := 1024;
dwRet := WNetUseConnection(HWND(nil),lpNetResource,PChar(sPassword),PChar(sUserName),Flags,lpAccessName,lpBufferSize,lpResult); if dwRet = NO_ERROR then
begin
Result := true;
end
else
begin
Result := false;
end;
end;
localname:本地磁盘号 如:Y: Z:
remotename: 共享路径 如 :\\server\share
username : 用户名
password: 密码
function connectserver(localname: string; remotename: string; username: string; password: string): boolean;
var
NetSource: TNetResource; Errinfo: longint;
begin
with NetSource do begin
dwType := RESOURCETYPE_ANY; //RESOURCETYPE_DISK
lpLocalName := pchar(localname);
// 将远程资源映射到此驱动器
lpRemoteName := pchar(remotename);
// 远程网络资 源
lpProvider := '';
// 必须赋值,如为空则使用lpRemoteName 的值。
end;
ErrInfo := WnetAddConnection2(NetSource, pchar(password), pchar(username), 0);
result := (ErrInfo = NO_ERROR);
end;
API: WnetAddConnection2
var
iCount : Integer;
bSuccess : Boolean;
lpNetResource : NETRESOURCE;
Flags,lpResult,lpBufferSize,dwRet : DWORD;
lpAccessName : Array [0..1024] of char;
begin
lpNetResource.dwScope := RESOURCE_GLOBALNET;
lpNetResource.dwType := RESOURCETYPE_DISK;
lpNetResource.dwDisplayType := RESOURCEDISPLAYTYPE_SHARE;
lpNetResource.dwUsage := RESOURCEUSAGE_CONTAINER;
lpNetResource.lpLocalName := nil;
lpNetResource.lpRemoteName := PChar(sFileDir);
lpNetResource.lpProvider := nil; Flags := 0 or CONNECT_PROMPT or CONNECT_UPDATE_PROFILE; lpResult := 0;
lpBufferSize := 1024;
dwRet := WNetUseConnection(HWND(nil),lpNetResource,PChar(sPassword),PChar(sUserName),Flags,lpAccessName,lpBufferSize,lpResult); if dwRet = NO_ERROR then
begin
Result := true;
end
else
begin
Result := false;
end;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
if LoginServer('\\tchtc-svr','tchtc','tchtc') then
showmessage('成功登录\\tchtc-svr')
else
ShowMessage('登录\\tchtc-svr');
end;