ShellExecuteEx oraz Sleep

0

Hej! Mam pytanie do speców od Windows API...
Jeśli wywołuje funkcje ShellExecuteEx w celu wywołania programu, a zaraz po tym funkcję Sleep to program wywołany wcześniej też się pauzuje... Czy trzeba wywołać ShellExecuteEx w innym wątku? Chodzi o to, że muszę poczekać parę sekund na wygenerowanie wyniku do pliku....

1

Nigdy się z tym nie spotkałem. ShellExecute odpala program w osobnym procesie, więc wątki nie mają tu nic do rzeczy. Zresztą napisałem kiedyś taki program który klikał mi w pajacyka i łączyłem ShellExecute ze Sleep() i nie było problemów.

1

nie pamiętam dokładnie jak to robiłem, ale najprawdopodobniej ustawiałem w fMask:

SEE_MASK_NOCLOSEPROCESS (0x00000040)
Use to indicate that the hProcess member receives the process handle. This handle is typically used to allow an application to find out when a process created with ShellExecuteEx terminates. In some cases, such as when execution is satisfied through a DDE conversation, no handle will be returned. The calling application is responsible for closing the handle when it is no longer needed.

I w hProcess masz uchwyt który możesz użyć w WaitForSingleObject(s/Ex).. aby zaczekać aż wywołana apka/... się zakończy. Robiłem tak z Paintem - wywoływałem i czekałem aż zakończy się edycja bmp.

0

Ok, dzięki za info. :) Już problem załatwiłem pętlą do...while, która sprawdza czy plik istnieje, ale pokombinuje z funkcjami Windows API z czystej ciekawości :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1