Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.10.2010, 12:21
Аватар для Sky.NET
Sky.NET Sky.NET вне форума
Прохожий
 
Регистрация: 22.09.2010
Сообщения: 49
Версия Delphi: XE
Репутация: 12
По умолчанию Удаление программы после её закрытия

Проверка диска при запуске:
PHP код:
procedure TForm1.FormCreate(SenderTObject);
begin
  
if Copy(ExtractFileDir(Application.ExeName), 12) <> GetWin('%systemdrive%'then
    Application
.Terminate;
end

Можно конечно сделать так:
PHP код:
procedure TForm1.FormCreate(SenderTObject);
begin
  
if ExtractFileDrive(Application.ExeName) <> GetWin('%systemdrive%'then
    Application
.Terminate;
end
Но я не знаю, что ExtractFileDrive выдаст если программа будет находится в общей папке сервера (\\Student\...). Кстати, что эта функция выдаст?

В общем как удалить программу после процедуры Application.Terminate?
Form1.Close и Close здесь не работают.
DeleteFile(ParamStr(0)) после и перед Application.Terminate тоже не работает.

P.S.
Желательно без использования батников, т.к. они и командная строка запрещены в учётной записи пользователя.

Последний раз редактировалось Sky.NET, 02.10.2010 в 12:59.
Ответить с цитированием
  #2  
Старый 02.10.2010, 14:12
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Ну удалить себя можно (как я знаю) через батник. Ну можно его не создавать, а тупо все записать в себя и выполнить...:
Код:
uses ShellApi;
 
procedure TForm1.FormDestroy(Sender: TObject);
var f: textFile;
  FileName: string;
begin
  FileName := changefileext(paramstr(0), '.bat');
  assignFile(f, FileName);
  rewrite(f);
  writeln(f, ':1');
  writeln(f, format('Erase "%s"', [paramstr(0)]));
  writeln(f, format('If exist "%s" Goto 1', [paramstr(0)]));
  writeln(f, format('Erase "%s"', [FileName]));
  closefile(f);
  ShellExecute(Handle, 'Open', PChar(FileName), nil, nil, sw_hide);
end;

Ну а вот тут про нужную тебе функцию, может поможет:
http://www.delphisources.ru/pages/fa...Drive.php.html
__________________
Помогаю за Спасибо
Ответить с цитированием
Этот пользователь сказал Спасибо v1s2222 за это полезное сообщение:
denchik232 (27.05.2013)
  #3  
Старый 02.10.2010, 16:48
Аватар для Sky.NET
Sky.NET Sky.NET вне форума
Прохожий
 
Регистрация: 22.09.2010
Сообщения: 49
Версия Delphi: XE
Репутация: 12
По умолчанию

Спасибо, работает.
Но тут используется командная строка.
Я попробовал отключить командную строку и обработку командных файлов у себя на компьютере, но командные файлы по прежнему работают... Это значит, что их нельзя отключить или то, что я использую учётную запись администратора?
Ответить с цитированием
  #4  
Старый 02.10.2010, 17:26
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Скорее всего, из-за второго.
__________________
Помогаю за Спасибо
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 06:17.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter