Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.07.2011, 12:53   #11
mrDuke
 
Регистрация: 18.12.2007
Сообщений: 8
По умолчанию

А если что нить умное сказать?
mrDuke вне форума Ответить с цитированием
Старый 15.07.2011, 13:01   #12
mrDuke
 
Регистрация: 18.12.2007
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Код:
del "D:\prog.exe"
if exist "D:\prog.exe" goto try
facepalm
и чего тут не понятного? из проги запускаю *.bat файл и пока прога завершается он пытается ее безуспешно удалить, как только закрылась прога - файл удаляется, переновывается из ~tmp и запускается *.exe.

Если экзешник не запускать, то он новый и не удалиться.
mrDuke вне форума Ответить с цитированием
Старый 15.07.2011, 13:24   #13
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Цитата:
Сообщение от mrDuke Посмотреть сообщение
Обновляю exe'шник. Все проходи нормально, только после перезапуска когда закрываешь прогу удаляется exe файл. Никак не пойму почему это происходит.
Код:
if not exist "D:\$$prog.tmp" goto exit
taskkill /F /IM "prog.exe"
:try
del "D:\prog.exe"
if exist "D:\prog.exe" goto try
ren "D:\$$prog.tmp" "prog.exe"
prog.exe
:exit
Тогда показывай след код: OnClose,onCloseQuerty,OnDestroy
Человек_Борща вне форума Ответить с цитированием
Старый 15.07.2011, 13:34   #14
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Цитата:
удаляется exe файл
Код:
del "D:\prog.exe"
...и правда - и чего он удаляется?...
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 15.07.2011, 14:17   #15
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Johnson, флудим по маленьку?!...

GunSmoker, следующей строчкой после удаления идёт переименование D:\$$prog.tmp -> proga.exe

mrDuke, признаюсь, я не увидел проблем в этом коде... Можете выложить проект (исходный код), где вы создаёте новый файл ("D:\$$prog.tmp") и запускаете батник... на событиях закрытия формы ничего не завязано?...

СТОП! А если программа НЕ на диске D: ?!
и вместо переименования много лучше
COPY D:\$$prog.tmp "ПолныйПутькПРограмме\proga.exe "
DEL D:\$$prog.tmp

Последний раз редактировалось Serge_Bliznykov; 15.07.2011 в 14:19.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.07.2011, 15:58   #16
mrDuke
 
Регистрация: 18.12.2007
Сообщений: 8
По умолчанию

У меня не в том проблема что что то не создается или не запускается.
Проблема в том что вновь созданный файл удаляется после его запуска и закрытия. Если его не запускать (неважно вручную или из пакетника) то он остается. Если же его запустить, то после завершения он исчезает. Причем у меня два варианта перезапуска проги, первый она тупо закрывается а потом пакетник ее перезапускает (в этом случае в дальнейшем файл не удаляется), а второй- перезапуск с переименованием, кусок кода который я выложил. В этом случае она удаляется.
Причем!!! Я для проверки установил атрибут "только чтение", и ура!!! прога не удалилась, НО!!! как только я руками снимаю атрибут - файл исчезает. У меня стоит win7, и я вот начинаю подозревать что она защищает себя от "вируса"...
mrDuke вне форума Ответить с цитированием
Старый 15.07.2011, 16:00   #17
mrDuke
 
Регистрация: 18.12.2007
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
СТОП! А если программа НЕ на диске D: ?!
и вместо переименования много лучше
COPY D:\$$prog.tmp "ПолныйПутькПРограмме\proga.exe "
DEL D:\$$prog.tmp
У меня так и заложено. Сюда просто выложил такие короткие пути.
mrDuke вне форума Ответить с цитированием
Старый 15.07.2011, 19:40   #18
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Цитата:
и я вот начинаю подозревать что она защищает себя от "вируса"...
Ваши ошибки - следствие ваших действий...

bat генерирует программа или руками запускаете?

Показывайте код OnCreate,OnDestroy,OnClose,OncloseQ uerty
Человек_Борща вне форума Ответить с цитированием
Старый 16.07.2011, 05:54   #19
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
GunSmoker, следующей строчкой после удаления идёт переименование D:\$$prog.tmp -> proga.exe
И если файла нет, то эта строчка не приносит эффекта.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 16.07.2011, 08:51   #20
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от GunSmoker
Цитата:
Сообщение от Serge_Bliznykov
GunSmoker, следующей строчкой после удаления идёт переименование D:\$$prog.tmp -> proga.exe
И если файла нет, то эта строчка не приносит эффекта.
если этого файла нет, то до строчки удаления мы не доходим.
обратите внимание, что первой строкой идёт проверка на наличие данного файл, если его нет - выход из батника..
if not exist "D:\$$prog.tmp" goto exit

я, как Человек_Борща склоняюсь к тому, что автор что-то мутит в своей программе. И, как раз, скорее всего, именно на процедурах закрытия...
А, возможно, при переименовании файлов он неверно задаёт имя (полный путь) к своей программе. Тогда, разумеется, переименование не происходит, батник закрывается с ошибкой, которую никто не видит и не обрабатывает.. и алес капут!

Кстати, возможно, что причина этого следующая, в Windows на ядре NT (2000, XP, Vista, Seven) такое будет происходить, если во время работы приложения дать команду на его удаление. Пока приложение работает - файл будет существовать. Закрыли приложение - операционка удалит файл.


Короче, нужен исходник проекта (можно тестового).
Тогда можно сказать что-то более определённое...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перезапуск DOS приложения по условию andrewua12 Фриланс 1 26.05.2009 00:02
Перезапуск DOS приложения по условию andrewua12 Операционные системы общие вопросы 2 25.05.2009 17:11
Запуск программы на выполнение из другой программы. ViNcHeStEr Паскаль, Turbo Pascal, PascalABC.NET 6 18.06.2008 14:33
программы koyot Фриланс 1 14.03.2008 13:10
Программы Simply-Art Свободное общение 4 18.09.2007 22:41