我正在尝试为我构建的应用程序创建安装程序。尝试将程序复制到用户桌面时遇到问题: 复制程序时,出现错误:
系统错误。代码:5. 访问被拒绝。
我尝试以管理员身份运行,但似乎没有任何效果。当我将文件复制到 Program Files 时,它工作正常,但是当我尝试复制到用户的桌面时,我收到错误消息。我的目标平台是 Windows 7 和 Windows 8。
这是我的一些代码:
function GetCurrentUserName : String;
const
cnMaxUserNameLen = 254;
var
dwUserNameLen : DWORD;
begin
dwUserNameLen := cnMaxUserNameLen-1;
SetLength(sUserName, cnMaxUserNameLen);
GetUserName(PChar(sUserName), dwUserNameLen);
SetLength(sUserName, dwUserNameLen);
Result := sUserName;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var
Source, Source2, Dest, Dest2: String;
begin
Source := 'rusmar.bin';
Dest := 'C:/Program Files/RusMarEstimatingModel.exe';
if not CopyFile(PChar(Source), PChar(Dest), False)
then RaiseLastOSError;
GetCurrentUserName;
Source := 'rusmar.bin';
Dest := 'C:/Users/' + sUserName + '/Desktop/RusMarEstimatingModel.exe';
if not CopyFile(PChar(Source), PChar(Dest), False)
then RaiseLastOSError;
label2.Show;
timer1.Enabled := True;
end;