Дано: есть прога, которая чтобы обновиться запускает bat файл, которые удаляет исходный ехе-шник, переименовывает полученный, и запускает переименованный.
запускаю bat файл следующим образом:
iWay:= ExtractFileDir(Application.ExeName); // получаю путь к ехе-шнику
ShellExecute(0,nil,PChar(iWay+'\Update.bat'),nil,nil,SW_HIDE); // запускаю bat-файл
Application.Terminate; // глушу прогу
сам Update.bat выглядит так:
@echo off
:del_loop
del С:\1.exe // крутимся в цикле пока не грохнем файл 1.exe
if exist С:\1.exe goto del_loop
:go
rename С:\_1.exe 1.exe
if not %errorlevel% == 0 goto go // если не удалось переименовать (вернулась ошибка) - пытаемся снова
start С:\1.exe // запускаем полученный файл
del Update.bat // самоубийство
Проблема: под ХР все работает как часы, под Vista ни в какую не хочет запускаться.
Беда...
On 29.12.2010 6:51, irbis3003 wrote: > Проблема: под ХР все работает как часы, под Vista ни в какую не хочет > запускаться. > Беда...
не ясно проблема в запуске батника или в его работе? и еще — не знаю как
в висте, но в семерке с корнем диска С у программ могут быть проблемы,
туда не всех пускают а только с админ правами.
Здравствуйте, Alexey Voytsehovich, Вы писали:
AV>не ясно проблема в запуске батника или в его работе? и еще — не знаю как AV>в висте, но в семерке с корнем диска С у программ могут быть проблемы, AV>туда не всех пускают а только с админ правами.
Ошибка в работе бата.
Ну а директорию я не ту маленько указал — фактическая (по умолчанию) "C:\Program Files\bla-bla-bla".
Это уже зависит куда пользователь прогу ставил.
Здравствуйте, nullptr_t, Вы писали:
_>Здравствуйте, irbis3003, Вы писали:
I>>"C:\Program Files\bla-bla-bla" _>и туда права нужны. как на счет "D:\Test" ?
Туда не вариант, у большинства программа стоит именно в прогр.файлс.
Здравствуйте, irbis3003, Вы писали:
I>Здравствуйте, nullptr_t, Вы писали:
_>>Здравствуйте, irbis3003, Вы писали:
I>>>"C:\Program Files\bla-bla-bla" _>>и туда права нужны. как на счет "D:\Test" ?
I>Туда не вариант, у большинства программа стоит именно в прогр.файлс.
я имел ввиду произвести тест хотя и так всё ясно. тут должен быть отдельно Updater.exe с запросом прав у UAC
да и пара бы уже в 2011 писать программы, которые проверяют уровень прав пользователя
Здравствуйте, nullptr_t, Вы писали:
_>я имел ввиду произвести тест хотя и так всё ясно. тут должен быть отдельно Updater.exe с запросом прав у UAC _>да и пара бы уже в 2011 писать программы, которые проверяют уровень прав пользователя
да как-то не хотелось особо заморачиваться, пока на ХР все норм работало.
Здравствуйте, irbis3003, Вы писали:
I>да как-то не хотелось особо заморачиваться, пока на ХР все норм работало.
многим тоже. зато в 2007м ничего не работало