Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Pokud je potřeba, aby externí program provedl uričtou funkci, může být nutné pozastavit provádění da… nový
HonzaX 29.04.2006 10:00
HonzaX
Pokud ma program na dokonceni procesu cekat, slouzi k tomu API CreateProcess() spolu s funkci WaitFo… poslední
Jan Fiala 29.04.2006 11:12
Jan Fiala

Pokud je potřeba, aby externí program provedl uričtou funkci, může být nutné pozastavit provádění dalšího kódu, až se ext. program ukončí. To pomocí ShellExec nejde. Řešení je pak Windows Script:

#define SW_HIDE 0
#define SW_NORMAL 1
#define SW_MINIMIZED 2
#define SW_MAXIMIZED 3

#define WAIT .T.
#define NOWAIT .F.

oWSShell=CREATEOBJECT('WScript.Shell')
oWSShe ll.Run('net.exe time \\server /set /yes',SW_HIDE,WAIT)

Pokud ma program na dokonceni procesu cekat, slouzi k tomu API CreateProcess() spolu s funkci WaitForSingleObject()
Je to obdoba skriptu, ktery popisujes. Pouziti WSH v programu by bylo trochu skravani se za uchem, protoze bys musel spustit z programu WSH a v nem spustis ten program.

Jinak resit se to da klidne i pomoci WinExec(), protoze to vraci handle procesu, ktery pak muzes pouzit ve WaitForSingleObject() a cekat na dokonceni.

Zpět do poradny Odpovědět na původní otázku Nahoru