Moinsen,
habe ein Problem über dem ich schon etwas länger brüte... Hier erstmal der Quellcode:
Delphi-Quellcode:
Result := 0;
Anhang := TStringList.Create;
Anhang.Add(Schluessel);
Anhang.SaveToFile(ExtractFilePath(ParamStr(0)) + '
K.txt');
CopyFile(PChar(OpenDialog1.FileName),
PChar(ExtractFilePath(ParamStr(0)) + '
Crypt.bmp'), False);
Anhang.Clear;
Anhang.Add('
copy /b Crypt.BMP + /b K.txt Crypt.BMP');
Anhang.SaveToFile(ExtractFilePath(ParamStr(0)) + '
Launch.bat');
While (FileExists(ExtractFilePath(ParamStr(0)) + '
Crypt.bmp') = False)
Or
(FileExists(ExtractFilePath(ParamStr(0)) + '
K.txt') = False)
Or
(FileExists(ExtractFilePath(ParamStr(0)) + '
Launch.bat') = False)
Do
Application.ProcessMessages;
While Result < 32
Do
Result := ShellExecute(
Handle, '
open', PChar(ExtractFilePath(ParamStr(0)) + '
Launch.bat'),
Nil,
PChar(ExtractFilePath(ParamStr(0))), SW_Normal);
AssignFile(Datei, ExtractFilePath(ParamStr(0)) + '
K.TXT');
Erase(Datei);
AssignFile(Datei, ExtractFilePath(ParamStr(0)) + '
LAUNCH.BAT');
Erase(Datei);
Das klappt alles wunderbar, es wird kein Felher ausgeworfen, aber der Befehl aus der Batch Datei wird nicht korrekt ausgeführt...
Lasse ich die letzten vier Zeilen weg und führe den Befehl "per Hand" aus dem Explorer aus, habe ich keine Probleme. Also war mein Verdacht das die
Crypt.bmp noch nicht vorhanden ist, wenn er die Batch Datei ausführen will, aber laut FileExist ist sie das... (im Explorer taucht sie aber erst später auf... weiss nicht ob FileExist das richtige zurück liefert!)
Was kann man da tun?! Leider kann ich auch nicht die Meldung sehen, die die Batch Datei zurück liefert, denn ich weiss nicht wie ich die dazu überreden kann nicht sofort wieder zu verschwinden...
Beste Grüsse,
Ricane