Hallo DPler,
ich weiß mal wieder nicht weiter. Folgendes Problem: Ich habe eine Anwendung geschrieben mit der ich eine EXE datei in eine
DB (AbsolutDB) einfügen kann und die zur Laufzeit mit einer RunProgram.exe aus der
DB ausgelesen, auf Festplatte gespeichert, ausgeführt und danach wieder gelöscht wird.
Das ist der Punkt.... ich muss die Datei auf der Festplatte speichern. Kann man die Datei nicht aus der
DB in den Speicher laden und dort ausführen ?? Oder gibt es eine andere Möglichkeit ???
Der Grund: die EXE Dateien werden von unseren Admins mit AutoIt geschrieben und compiliert. Jetzt wurde aber eine Datei decompiliert und der Code lag im Klartext vor. Darin war auch ein DomainAdmin Passwort ....
Delphi-Quellcode:
procedure TMainFrm.qryAutoItAfterRefresh(DataSet: TDataSet);
var i: Double;
ExecuteFile:
string;
str: TMemoryStream;
begin
str:= TMemoryStream.Create;
//ExecuteFile:= usrTemp + '\' + qryAutoIt.FieldByName('name').AsString; // so mach ich es im Moment
//TBlobField(DataSet.FieldByName('file')).SaveToFile(ExecuteFile);
TBlobField(DataSet.FieldByName('
file')).SaveToStream(str);
Str.Position = 0;
if str.Size = 0
then
exit;
{hier möchte ich den Stream ausführen}
{ShellExecute(Handle,'open', // so mach ich es im Moment
PChar(ExecuteFile) , PChar(''),
nil,SW_SHOWMINNOACTIVE);}
end;
Hoffentlich habt ihr irgenwelche ideen und könnt mir weiterhelfen.
Danke
Liebe Grüße aus dem Allgäu
Udo
[edit=SirThornberry]Buchstabendreher im Titel korrigiert - Mfg, SirThornberry[/edit]