Emancipate Skrevet 19. juni 2007 Del Skrevet 19. juni 2007 Jeg trenger en kode for å: - kjøre et program - vente til programmet er ferdig kjørt - få tak i returverdien (errorlevel) og hvis errorlevel <> 0 få tak i det programmet skrev til stdout Hvordan skal jeg gjøre dette? Lenke til kommentar
Format71 Skrevet 19. juni 2007 Del Skrevet 19. juni 2007 Du kan selvfølgelig bruke CreateProcess( )-windows-funksjonen. Den lar deg route om stdout for programmet. JCL har noen funksjoner som gjør dette enklere for deg. -Vegar Lenke til kommentar
Emancipate Skrevet 19. juni 2007 Forfatter Del Skrevet 19. juni 2007 Jeg ville helst at programmet mitt skulle være cross-platform, men det får gå. Uansett så går jeg for å skrive en bat fil som gjør det som skal gjøres og kjøre den isteden (ShellExecute). Det tar ikke så lang tid å lage. Lenke til kommentar
Emancipate Skrevet 22. juni 2007 Forfatter Del Skrevet 22. juni 2007 Men arrg da, når jeg bruker ShellExecute på bat-fila så åpner den sitt eget terminalvindu. Hvordan kan jeg hindre det? Den skal selvfølgelig bruke programmets terminalvindu. Lenke til kommentar
Emancipate Skrevet 22. juni 2007 Forfatter Del Skrevet 22. juni 2007 (endret) Virker ok: {--------------------------------------------------------------} unit Shell; interface procedure Run(Fn: string); implementation uses Windows; procedure Run(Fn: string); var si: STARTUPINFO; pi: PROCESS_INFORMATION; begin GetStartupInfo(si); CreateProcess(PChar(Fn), '', nil, nil, true, 0, nil, nil, si, pi); WaitForSingleObject(pi.hProcess, 10000); end; end. Endret 22. juni 2007 av tsg1zzn Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå