Announcement

Collapse
No announcement yet.

Externes Programm starten mit API Befehl LoadModule

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

  • Externes Programm starten mit API Befehl LoadModule

    Hallo ich versuche eine externe EXE-Datei mit der API Funktion
    function LoadModule(ModuleName: PChar; ParameterBlock: Pointer): THandle;
    zu starten, doch leider bekomme ich das mit dem ParameterBlock nicht hin, wie muß ich den Aufruf schreiben bzw. wie erstelle ich den Pointer?

    Hier noch weitere Infos aus der Hilfe:

    ParameterBlock Zeigt auf eine anwendungsdefinierte LOADPARMS-Struktur, die den neuen Parameterblock der neuen Anwendung definiert

    Element Beschreibung

    segEnv Gibt an, ob die neue Anwendung eine Kopie der Umgebung der vorherigen Anwendung erhält oder ob diese einen neue Umgebung erstellt. Wenn das Element 0 ist, erhält die neue Anwendung eine genaue Kopie des Umgebungsblocks. Ist der Wert ungleich 0, muß der eingegebene Wert die Segmentadresse eines Speicherobjekts sein, der eine Kopie des neuen Umgebungsblocks der neuen Anwendung enthält.
    lpszCommandLine Zeigt auf einen null-terminierten String, der eine Kommandozeile (ohne den Namen der neuen Anwendung) enthält. Dieser String darf eine Länge von 120 Bytes nicht überschreiten. Gibt es keine Kommandozeile, muß dieses Element auf einen Null-Längen-String zeigen (er darf nicht auf NIL gesetzt werden).
    lpShow Zeigt auf eine Datenstruktur, die zwei 16-Bit-Werte enthält. Der erste Wert muß immer auf 2 gesetzt werden. Der zweite Wert gibt an, wie das Anwendungsfenster gezeigt werden soll. Eine Liste der annehmbaren Werte ist der Beschreibung des Parameters nCmdShow der Funktion ShowWindow zu entnehmen.

    lpReserved Ist reserviert und muß 0 sein.

    Grüße Hendrik

  • #2
    Hallo,

    die API-Funktion LoadModule gehört zur 16-Bit-Welt und ist daher in 2 Ausführungen zu finden. Welche wird verwendet oder genauer gesagt, erfolgt der Aufruf aus einer 16-Bit- oder 32-Bit-Anwendung heraus

    Comment


    • #3
      Ich suche eigentlich eine Möglichkeit um externe Windows Programme (exe Dateien) aus meiner Delphi Anwendung heraus unter 16 Bit und unter 32 Bit zu starten, wo ich als Rückgabewert das Handle bekomme damit beim zweiten Aufruf des Programmes das Programm nicht nochmal gestarten wird sondern nur in den Vordergrund geholt wird.

      Oder gibt es da eine andere Möglichkeit dies zu realisieren (unter 16 und 32 Bit).

      Grüße Hendri

      Comment


      • #4
        Hallo,

        ich glaube WinExec() sollte auch in 16-bit funktionieren.

        Unter Win32 ist auf jedenfall CreateProcess() vorzuziehen.

        Leider kann man die Programme nach WinExec nicht kontrollieren.

        Hilfe zu WinExec() gibts in der Win32 Hilfe

        Comment

        Working...
        X