Shellaufruf aus dem Programm heraus

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
ac
Beiträge: 19
Registriert: Mi 25. Okt 2006, 09:54

Beitrag von ac »

hi, da bin ich wieder. mein momentanes problem passt zwar nicht unter diese überschrift aber es handelt sich immernoch um das gleiche projekt. code von delphi nach lazarus zu portieren ...

da mir hier schon letztes mal gut geholfen wurde, denke ich dass ich auch nun wieder gute ratschläge bekomme.

es geht um einen shellaufruf aus dem programm heraus. aber hier erstmal der code:

Code: Alles auswählen

procedure RunAndWaitShell(Executable, Parameter: STRING; ShowParameter: INTEGER);
      var
         Info: TShellExecuteInfo;
         pInfo: pShellExecuteInfo;
         exitCode: DWord;
      begin
         pInfo := @Info;
         if (debug<>'false') then
         begin
            ShowParameter:=0;
         end;
         with Info do
         begin
            cbSize := SizeOf(Info);
            fMask  := SEE_MASK_NOCLOSEPROCESS;
            wnd    := application.Handle;
            lpVerb := NIL;
            lpFile := PChar(Executable);
            lpParameters := PChar(Parameter + #0);
            lpDirectory  := NIL;
            nShow        := ShowParameter;
            hInstApp     := 0;
         end;
         ShellExecuteEx(pInfo);
         repeat
            exitCode := WaitForSingleObject(Info.hProcess, 500);
            Application.ProcessMessages;
            until (exitCode <> WAIT_TIMEOUT);
      end;


und zwar nölt der compiler rum, dass er pShellExecueInfo nicht findet, das scheint es wohl nur für delphi zu geben so weit ich weiß. (Error: Identifier not found "pShellExecuteInfo"). Gibt es etwas vergleichbares für lazarus, bzw. kennt jemand einen anderen weg?

Außerdem gibt es wenige zeilen später noch ein problem. Und zwar findet der compiler wnd nicht, was mich ein wenig stutzig macht, denn meines wissens nach ist wnd eine api zu steureung von fenstern. Oder greift lazarus darauf einfach nur unter einem anderen namen zu ?

Viele grüße, ac

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

mein momentanes problem passt zwar nicht unter diese überschrift...

eben, und deshalb bitte ein neues Thema ;)

Hab nur beim teilen einen Fehler gemacht, daher hier nun Theos antwort:

Theo hat geschrieben:Unter Lazarus solltest Du versuchen, von dem WinAPI Zeug wegzukommen.
Schau mal hier nach:
http://wiki.lazarus.freepascal.org/Exec ... rograms/de

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Beitrag von mschnell »

Prima ! Plattform-Unabhängig !

-Michael

Antworten