1

如何让我的 Delphi 7 程序将自身保存到新位置。例如,程序保存在我的闪存棒上,然后当我运行它时,我希望它保存在 c:\user \(用户名)中

以上是原问题。

这是我尝试使用的代码。该程序运行完美,但是当我检查应该将其保存在其中的文件夹时,它并没有出现在那里。

 procedure TForm5.FormActivate(Sender: TObject);
  var source, dest : string;
 begin
  Source := 'project1.exe';
  Dest := 'C:\Users\Craig\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup';
  CopyFile(PChar(Source), PChar(Dest), False);
 end;

谢谢你的帮助。

4

2 回答 2

3

从 Application.ExeName 中读取可执行文件名。然后调用 CopyFile 执行复制。

Source := Application.ExeName;
Dest := ...;
CopyFile(PChar(Source), PChar(Dest), False);

关于您的更新:

  1. 目标必须是一个文件。您正在尝试将文件复制到指定文件夹的路径。
  2. 你没有检查错误。当你调用类似的 API 函数CopyFile时,你需要检查返回值。

你想要这样的东西:

Source := 'project1.exe';
Dest := 'C:\Users\...\Startup\project1.exe';
if not CopyFile(PChar(Source), PChar(Dest), False) then
  RaiseLastOSError;
于 2012-11-25T07:48:46.310 回答
0

尝试这个:

CopyFile(PChar(C:\OldFile.exe), PChar(C:\NewFile.exe), true);
于 2012-11-25T07:57:23.967 回答