Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.12.26;
Скачать: [xml.tar.bz2];

Вниз

Убить себя   Найти похожие ветки 

 
Builder   (2004-12-15 04:25) [0]

Как по простому убить свой же екзешник, который просто занимается тем, что переносит инсталяцию из одной папки в другую (он находится в этой же папке, посему должен быть убит).
?


 
Fedia ©   (2004-12-15 07:52) [1]

>Убить себя
:))

Пусть данная программа запускает другую программу, например из новой директории, в параметрах запуска которой передавай путь и имя убиваемого файла. Затем купирующую программу закрывай, после чего запущенная программа должна удалить файл, указанный в параметрах своего запуска и закрыться.


 
dr Tr0jan   (2004-12-15 08:00) [2]

Я думаю, что даже проще будет батник заюзать.
Создаешь батник со следущим содержанием:
rem proga.exe /y
rem batnik.bat /y

А затем перед завршением установки запускай этот батник.


 
Fedia ©   (2004-12-15 08:33) [3]

>dr Tr0jan   (15.12.04 08:00) [2]
Программа то может легко подождать момента, когда вызывающее ее приложение закроется, а вот bat файл может сработать до закрытия программы и не принести желаемого результата.


 
KSergey ©   (2004-12-15 08:45) [4]

> [3] Fedia ©   (15.12.04 08:33)

start /wait - и все будет путем ;)


 
Семен Сорокин ©   (2004-12-15 10:13) [5]


> Fedia ©   (15.12.04 08:33) [3]
> Программа то может легко подождать момента, когда вызывающее
> ее приложение закроется, а вот bat файл может сработать
> до закрытия программы и не принести желаемого результата.

если немного модифицировать:

 // создаем бат файл
 _tmp := "C:\" + TMP_BAT_FILE;
 AssignFile(_f, _tmp);
 try
  Rewrite(_f);
  Writeln(_f, "@echo off");
  Writeln(_f, ":del_loop");
  Writeln(_f, "del " + ParamStr(0));
  Writeln(_f, "if exist " + ParamStr(0) + " goto del_loop");
  Writeln(_f, "del " + _tmp);
 finally
  CloseFile(_f)
 end;
 // теперь запускаем
 ShellExecute(hInstance, nil, pchar(_tmp), nil, nil, SW_HIDE);


 
pasha_golub ©   (2004-12-15 12:10) [6]

Семен Сорокин ©   (15.12.04 10:13) [5]
А если вдруг не хватит прав удалить, оно так и будет в цикле крутиться вечно?


 
dr Tr0jan   (2004-12-15 12:17) [7]

Еще обязательно параметр /q /f - для Win2K/XP и /y - для Win98/Me.
А закливание все же не стоит делать, все может случиться...


 
Семен Сорокин ©   (2004-12-15 12:19) [8]


> pasha_golub ©   (15.12.04 12:10) [6]
> А если вдруг не хватит прав удалить, оно так и будет в цикле
> крутиться вечно?

Ну уж прям на создание файла (Rewrite) прав хватило, а на удаление нет... можно конечно и еще что-нибудь придумать.

и почему вечно - до след. перезагрузки :))


 
GuAV ©   (2004-12-15 13:07) [9]

dr Tr0jan   (15.12.04 8:00) [2]
rem proga.exe /y
rem batnik.bat /y


LOL

REM

Enables you to include comments in a batch file or in your CONFIG.SYS file.
The REM command is also useful for disabling commands.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.12.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.033 c
6-1095147812
Александр1
2004-09-14 11:43
2004.12.26
Подключение к интернету


14-1102092265
able
2004-12-03 19:44
2004.12.26
Внешний вид


14-1102215968
Думкин
2004-12-05 06:06
2004.12.26
С днем рождения! 5 декабря


4-1100398034
VTM
2004-11-14 05:07
2004.12.26
RS-232


3-1101735933
Chery
2004-11-29 16:45
2004.12.26
Как узнать путь к БД: МуСКЛ, драйвер MyODBC-3.51.10.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский