int _tmain(int argc, _TCHAR* argv[])
{
char mon[200];
WIN32_FIND_DATA wfd;
HANDLE hFile = FindFirstFile("c:\\pom\\*.exe", &wfd);
if (hFile == INVALID_HANDLE_VALUE)
{
printf("No .exe files found.\n");
return 0;
}
else {
std::cout<<wfd.cFileName<<std::endl;
std::cout<<ShellExecute(NULL,"open",wfd.cFileName," -q -norestart","c:\\pom\\",SW_SHOWNORMAL)<<std::endl;
};
как отлавливать подобные ошибки?
Для этого необходимо указать параметрами -q -norestart.
Параметры эти, не всем хотфиксам нравятся, в частности,
виндовс медиа плеер11 wmp11.
Я знаю што шелекзекуте дает значение > 32 если все ок.
фданном случае 42.
то бишь все ок но картинка говорит об обратном.
Я не знаю как отловить данную ошибку/ошибки?:confused:
И дело даже не в задаче, а в том как отловить подобное сообщение.
кусок кода на visualstudio.net2003 c++:
Код:
сообщение об ошибке картинкой ниже
в чем же загвоздка.?;)
Цитата: dafirst
Я не знаю как отловить данную ошибку/ошибки?
Да никак. В конце концов, с точки зрения shellexecute это вообще не ошибка: exe-файл запущен, все ок. В принципе, если тебя интересуют именно эти ключи: -q -norestart, то, как вариант, можно попробовать сначала запустить exe-файл обновления с параметром /? , а в полученной справке (которую прога выкинет, скорее всего, в стандартный поток вывода) искать эти ключи, и если они есть, запускать опять с ними, а нет - так нет.
Цитата:
а в полученной справке (которую прога выкинет, скорее всего, в стандартный поток вывода) искать эти ключи, и если они есть, запускать опять с ними, а нет - так нет.
да... геморойно...
но подругому видимо никак...:(
пробывал через криэйтпроцес
результат 1.............................