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;
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