Thema: Delphi MemoryStream ausführen

Einzelnen Beitrag anzeigen

traudl

Registriert seit: 22. Jun 2004
Ort: Lauterach
37 Beiträge
 
Delphi 7 Enterprise
 
#1

MemoryStream ausführen

  Alt 15. Nov 2006, 10:01
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]
Udo Kinscherf
Ich versuche mein Bestes, aber im Moment reichts noch nicht.
  Mit Zitat antworten Zitat