O winexec() nao permite essa brincadeira, vc deverah usar o FS>CreateProcess(), que eh parte da API. Eu tenho um WinExecAndWait()
que eh soh uma facilitacao para usar o CreateProcess(). Se vc
quiser eu posso posta-la aqui.
Msg antiga, j tinha resolvido, foi dessa forma mesmo :-)
function Executa (Arquivo : String; Estado : Integer) : cardinal;
var Programa : array [0..512] of char;
CurDir : array [0..255] of char;
WorkDir : String;
StartupInfo : TStartupInfo;
ProcessInfo : TProcessInformation;
begin
StrPCopy (Programa, Arquivo);
GetDir (0, WorkDir);
StrPCopy (CurDir, WorkDir);
FillChar (StartupInfo, Sizeof (StartupInfo), #0);
StartupInfo.cb := sizeof (StartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := Estado;
if not CreateProcess (nil, Programa, nil, nil, false,
CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, nil,
StartupInfo, ProcessInfo)
then Result := 0
else begin
WaitForSingleObject (ProcessInfo.hProcess, Infinite);
GetExitCodeProcess (ProcessInfo.hProcess, Result);
end;
end;
[]s
-!-
þ QMPro 1.51 þ Turbo Pascal: Zamba's choice 1987,88,89,90,91,92,93,94...
---
# Origin: HidraSoft BBS * SP,Brasil * telnet hidrasoft.dyndns.org (4:801/161)
* Origin: LiveWire BBS - Synchronet - LiveWireBBS.com (1:2320/100)