Announcement

Collapse
No announcement yet.

Eingeschränktes Setup...?!

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Eingeschränktes Setup...?!

    Hallo,<br>
    ich habe ein kleines Applet für die Systemsteuerung geschrieben und damit
    dass auch da erscheint, muss es in das Systemverzeichnis kopiert werden.<br>
    Nun suche ein eine kleine Setup-Routine, die genau das macht. Im Prinzip
    will ich meine CPL-Datei in eine andere Datei "packen" (vielleicht eine
    RES-Datei?) und diese dann über eine Setup-Routine ins Systemverzeichnis
    entpacken. Der User darf am Installations-Pfad nix ändern können.
    Mein Haupt-Problem besteht jetzt darin, dass der User die CPL auch nicht vor der Installation benutzen darf.<br>
    Wie "verstecke" ich nun die CPL vorläufig in einer anderen Datei um diese
    dann mittels Setup in das Systemverzeichnis zu extrahieren?<br>
    Die Setup-Routine selbst sollte eigentlich kein Problem darstellen,
    da es ja mehr oder weniger nur ein "Hallo-Sagen" ist... das
    Systemverzeichnis kann man ja mit GetSystemDirectory ermittlen...<br>
    Falls ihr einen Weg kennt, wie ich das hinbekommen könnte, wäre ich euch
    für Hinweise sehr dankbar!<br>
    Tschüss, schönen Tag noch...<br>
    Rene

  • #2
    Hallo Rene,<br> der Source zeigt Dir, wie eine EXE aus einer Resource geladen und gespeichert wird. Danach wird die EXE auch noch aus geführt. Du solltest den Source auf Deine Anforderugen leicht anpassen können. Die rc-Datei habe ich in das Delphi-Projekt eingebunden. Dann erfolgt die Umwandlung in eine res-Datei beim kompilieren.<br><pre>
    unit Unit1;

    interface

    uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    StdCtrls;

    type
    TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    private
    { Private-Deklarationen }
    public
    { Public-Deklarationen }
    end;

    var
    Form1: TForm1;

    implementation

    {$R *.DFM}

    uses ShellApi;

    procedure TForm1.Button1Click(Sender: TObject);
    var
    aRS : TResourceStream;
    Filename : String;
    begin
    Filename:=ExtractFilePath(Application.Exename)+'te xt.exe';
    aRS:=TResourceStream.Create(hInstance,'TRAY','RT_R CDATA');
    Try
    aRS.SaveToFile(Filename);
    ShellExecute(Handle,'open',PChar(Filename),Nil,Nil ,SW_SHOW);
    Finally
    aRs.Free;
    end;
    end;

    end.

    rc- Datei
    TRAY RT_RCDATA "TrayTest.exe"
    </pre>
    Jens Schuman

    Comment


    • #3
      Hi,<br>
      vielen Dank, hat prima geklappt.<br>
      Das war genau das, was ich gesucht habe <br>
      Tschüss, und danke nochmal!<br>
      Ren

      Comment

      Working...
      X