Einzelnen Beitrag anzeigen

freeriders

Registriert seit: 24. Feb 2008
15 Beiträge
 
#9

Re: Shellfileoperation (Datei kann nicht kopiert werden)

  Alt 7. Mär 2008, 20:53
Oh man ich komm hier nicht mehr klar-.-
Also ich fang mal an zu erzählen^^
Habe mein Programm fertiggestellt und dann kompiliert.
Dann habe ich ne Setuproutine erstellt und dann hab ich die mal zum Testen aufm Rechner installiert.
Alles schön und gut klappt auch einwandfrei.
Nunja dann hab ich über den Desktopshortcut mein Programm geöffnet.
Dann der Schock: Beim kopieren zeigt er mir nen Fehler, von wegen er könnte die Datei nicht finden.
Nunja ich dachte schon ich könnte wieder alles in die Pfanne kloppen.
Dann habe ich das programm über die *.exe im Programme Ordner geöffnet. Und siehe da alles funktioniert.
Also ich dann wieder über den Desktop probiert und es geht wieder nicht.

Meine Schlussfolgerung war, dass er vielleicht (weil ich ja den Befehl "GetCurrentDir" zum kopieren benutze) den aktuellen Ordner der Verknüpfung auf dem Desktop nimmt.
Naja jetzt wo ich gerade diese Antwort schreibe will ich nochmal per Shortcut kopieren, damit er mir den Fehler nochmal anzeigt, um ihn abtippen zu können.
Und siehe da es geht!
Ich verstehe nur nicht warum, denn ich habe nichts geändert.
Das ist wirklich sehr seltsam, denn so kann ich das Programm ja nicht veröffentlichen, wenn es manchmal geht und manchmal nicht.
Nunja vielleicht könnt ihr mir ja helfen.

Mein Kopiervorgang sieht wie folgt aus:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);

var
von1, nach1: string;
von2, nach2: string;
von3, nach3: string;
von4, nach4: string;

begin

 if RadioButton1.Checked then

  begin
    von1 := GetCurrentDir+'\ORG_Daten\fifa.db';
    nach1 := Label1.Caption+'data\cmn\fifa.db';
    Copyfile(PChar(von1),PChar(nach1), false);

  if not Copyfile(PChar(von1),PChar(nach1), false) then
      MessageBox(Handle,PChar(SysErrorMessage(GetLastError)),'Fehler',MB_OK);

      von2 := GetCurrentDir+'\ORG_Daten\ger.db';
    nach2 := Label1.Caption+'data\cmn\fe\ger.db';
    Copyfile(PChar(von2),PChar(nach2), false);

  if not Copyfile(PChar(von2),PChar(nach2), false) then
      MessageBox(Handle,PChar(SysErrorMessage(GetLastError)),'Fehler',MB_OK);

  end;

 if RadioButton2.Checked then
   begin
    von3 := GetCurrentDir+'\WSL_Daten\fifa.db';
    nach3 := Label1.Caption+'data\cmn\fifa.db';
    Copyfile(PChar(von3),PChar(nach3), false);

 if not Copyfile(PChar(von3),PChar(nach3), false) then
      MessageBox(Handle,PChar(SysErrorMessage(GetLastError)),'Fehler',MB_OK);

    von4 := GetCurrentDir+'\WSL_Daten\ger.db';
    nach4 := Label1.Caption+'data\cmn\fe\ger.db';
    Copyfile(PChar(von4),PChar(nach4), false);

 if not Copyfile(PChar(von4),PChar(nach4), false) then
      MessageBox(Handle,PChar(SysErrorMessage(GetLastError)),'Fehler',MB_OK);

   end;

end;
Ich vermute mal es ist mal wieder ziemlich shclecht geschrieben, wie immer bei mir.

Achso sry auch für den Roman den ich geschrieben habe und danke schonmal für die Antworten die gekommen sind un kommen werden, so wie ich euch einschätze=)

LG

David Geis
  Mit Zitat antworten Zitat