как запустить 2 ую команду после 1 ой. а то они запускаются почти одновременно. . т.е. я бы хотел запустить calc после окончания пинга. сам не смог. помогите пож-та format PE Console entry start include 'win32a.inc' section '.data' readable writeable szShell db "C:\WINDOWS\system32\cmd.exe",0 szCommandLine1 db "/C ping 127.0.0.1",0 szCommandLine2 db "/C calc.exe",0 _open db "open",0 section '.code' code readable executable start: invoke GetModuleHandle,0 invoke ShellExecute, eax, _open, szShell, szCommandLine1, NULL, 1 invoke ShellExecute, eax, _open, szShell, szCommandLine2, NULL, SW_HIDE invoke ExitProcess,NULL section '.idata' import data readable library kernel,'kernel32.dll', shell32, 'shell32.dll' import kernel,\ GetModuleHandle,'GetModuleHandleA',\ ExitProcess,'ExitProcess' import shell32,\ ShellExecute,'ShellExecuteA'
Используйте ShellExecuteEx, в структуре SHELLEXECUTEINFO параметр fMask должен быть инициализирован значением SEE_MASK_NOASYNC (0x00000100)
Вызывай для первого процессе в цикле GetExitCodeProcess, пока он не перестанет возвращать STILL_ACTIVE. Как только это случится - значит, процесс завершился.