• winexec

    From Renato Zambon@1:2320/100 to All on Tue Jan 13 22:35:22 2004
    Oi,

    Uma dvida, no Delphi: se chamar um prg (DOS, no caso) pelo winexec(),
    como faz para continuar a execuo s depois que ele encerrar?

    []s
    -!-
    QMPro 1.51 Turbo Pascal: Zamba's choice 1987,88,89,90,91,92,93,94...

    ---
    # Origin: HidraSoft BBS * Aruja', SP, Brasil * 55-11-4654-2024 * (4:801/161)
    * Origin: LiveWire BBS - Synchronet - LiveWireBBS.com (1:2320/100)
  • From Fernando Silva@1:2320/100 to Renato Zambon on Fri Jun 25 00:43:02 2004
    Olah,

    O winexec() nao permite essa brincadeira, vc deverah usar o 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.

    Um abraco

    Fernando Silva
    icq 4724860
    msn fernando.stuff@bol.com.br

    ---
    # Origin: HidraSoft BBS * SP,Brasil * telnet hidrasoft.dyndns.org (4:801/161)
    * Origin: LiveWire BBS - Synchronet - LiveWireBBS.com (1:2320/100)
  • From Renato Zambon@1:2320/100 to Fernando Silva on Fri Jun 25 13:56:20 2004
    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)