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