Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > ShellExecute - как дождаться выполнения?


Автор: Бугемот 19.4.2006, 12:56
Привет.
Выполняю команду из приложения через ShellExecute. Команда выполняется долго, но приложение не дожидается завершения выполнения (даже и не ждет) и код основого приложения продолжает выполняться. Как бы дождаться все же завершения?
Спасибо 

Автор: SergeCpp 19.4.2006, 13:19
Код
SHELLEXEXECUTEINFO info;

//... установить info в соответствии с MSDN

info.fMask = SEE_MASK_NOCLOSEPROCESS;

ShellExecuteEx( &info );

WaitForSingleObject( info.hProcess, INFINITE );

CloseHandle( info.hProcess );

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceshellui5/html/wce50lrfShellExecuteEx.asp

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceshellui5/html/wce50lrfshellexecuteinfo.asp 

Автор: Бугемот 19.4.2006, 13:44
Ясно.
спасибо! 

Автор: Rickert 17.1.2007, 15:58
Делаю так:
Код

  CString str, str2;
  str.SetString(L"C:\\Program Files\\Windows Media Player\\wmplayer.exe");
  str2.SetString(L"sssss");
  HINSTANCE__ hnd;

  info.fMask = SEE_MASK_NOCLOSEPROCESS;
  info.hwnd = 0;
  info.lpVerb = L"qwe";
  info.lpFile = str.GetBuffer();
  info.lpParameters = str2.GetBuffer();
  info.nShow = SW_SHOWNORMAL;
  info.hInstApp = &hnd;
  info.cbSize = sizeof(info);

  ShellExecuteEx(&info);


Не работает. Неправильно заполняю структуру?

Автор: _hunter 17.1.2007, 17:24
Цитата(Rickert @  17.1.2007,  15:58 Найти цитируемый пост)
Не работает.

в чем это выражается? что ShellExecuteEx() возвращает? GetLastError()?

Цитата(Rickert @  17.1.2007,  15:58 Найти цитируемый пост)
Неправильно заполняю структуру?

если такие вопросы возникают -- может лучше ShellExecute() использовать?..

Автор: Rickert 17.1.2007, 18:39
_hunter, Я по началу его и использовал, но потом появилась надобность после запуска одной программы(по окончанию её работы) - запустить след.
Ошибка ни в чём не выражается, просто тишиан и  ничго не запускается, при этом сообщает VS, о том, что программа пытается создать не приHandle'нный процесс.

Автор: _hunter 17.1.2007, 18:46
Цитата(Rickert @  17.1.2007,  18:39 Найти цитируемый пост)
при этом сообщает VS, о том, что программа пытается создать не приHandle'нный процесс.

в смысле? как это в оригинале звучит? и что таки функции возвращают?
lpVerb, кстати, open д.б....

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)