Delphi:从另一台电脑打开一个文件
我的名字是来自巴西的Carlos Im。 我试图打开这样的文件:Delphi:从另一台电脑打开一个文件
image1.picture.loadfromfile('\\ntmemo01\c$\ozzy2.bmp');
但它不工作。 Im收到异常
类EFOpenError带消息“无法打开文件”\ ntmemo01 \ c $ \ ozzy2.bmp'访问被拒绝。“
感谢, 卡洛斯
你必须使用双反斜线。
image1.picture.loadfromfile('\\ntmemo01\c$\ozzy2.bmp');
如果仍然出现异常,那么文件无法从您的应用程序访问。
您应该做的第一件事是确保您可以使用Windows资源管理器访问该文件。
只需将其输入到开始菜单(WinKey + R)的运行对话框中,看看会发生什么。如果它不起作用,那么首先在那里工作,然后返回到您的程序。
image1.picture.loadfromfile('\\ ntmemo01 \ c $ \ ozzy2.bmp')也不起作用。它返回相同的异常 – user67348 2009-03-03 14:29:36
添加更多我的答案。 – 2009-03-03 15:20:01
当你在windows资源管理器中复制完全相同的字符串时,文件是否打开? 否则,它可能是一个权利问题,正如错误所示。
ntmemo01上的C:驱动器是否共享?如果不共享,则无法访问它。如果它是共享的,但需要用户名和密码才能访问,则必须以不同的方式访问它。您可以将驱动器盘符映射到它,在这个过程中提供用户名和密码:
const
RemoteName = '\\ntmemo01\C$';
UserName = 'yourusername';
Password = 'yourpassword';
function MapNetworkDrive: Boolean;
var
NetRes: TNetResource;
Res: DWord;
begin
Result := True;
FillChar(NetRes, SizeOf(TNetResource), 0);
NetRes.dwType := RESOURCETYPE_DISK;
NetRes.lpRemoteName := PChar(RemoteName);
NetRes.lpLocalName := 'H:'; // Whatever drive letter you want
Res := WNetAddConnection2(NetRes, PChar(Password), PChar(UserName), 0);
Result := (Res = NO_ERROR);
end;
要取消映射算账:
function UnMapNetworkDrive: Boolean;
var
Res: DWord;
begin
Res := WNetCancelConnection2(PChar('H:'), 0, True); // same drive letter as above
Result := (Res + NO_ERROR);
end;
访问被拒绝消息表明您没有权限访问ntmemo01计算机上的C $共享。
隐藏C $ a administrative share您确定当前用户帐户具有正确的权限吗?您首先需要映射驱动器,如Ken White
所暗示的那样,管理共享在Windows Vista和Windows 7中默认处于禁用状态,除非您加入域。您可以按照以下方式手动启用它们。
单击开始按钮并在搜索框中输入'regedit'并按回车。
浏览到
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System
。添加一个新的DWORD 称为LocalAccountTokenFilterPolicy,并给它的的值。
重新启动并完成!
来源:http://www.paulspoerry.com/2007/05/09/how-to-access-administrative-shares-on-vista-c/
C $一个隐藏的管理共享你确定当前用户帐户具有正确的权限? http://support.microsoft.com/kb/314984 – stukelly 2009-03-03 15:48:49