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

Вниз

Господа!!! Как сделать чтобы прога сама себя удалила после выполнения   Найти похожие ветки 

 
RUS1   (2002-02-05 12:25) [0]

Господа!!! Как сделать чтобы прога сама себя удалила после выполнения


 
Виктор Щербаков   (2002-02-05 12:31) [1]

Парадокс.


 
Yakudza   (2002-02-05 12:34) [2]

Написать другую прогу которая ее удаляет :)


 
alex_R   (2002-02-05 12:50) [3]

Выполнить bat файл, в котором сначала запустить, а потом удалить ее


 
Дремучий   (2002-02-05 13:06) [4]

вопрос из ФАК


 
Song   (2002-02-05 13:52) [5]

Создаёшь батник в котором пишешь
pause
del твоя_пага

а из паги пишешь ShellExecute(...,PChar(батник)...);
Form1.Close;

всё


 
AlexanderSK   (2002-02-05 14:45) [6]

А "Form1.Close;" то тут причем?


 
Pat   (2002-02-05 17:00) [7]

После всех этих батников в списке процессов остается Winoldap. И сколько я запусукаю прогу, добвляется еще один Winoldap. Как от этого избавиться?


 
AlexanderSK   (2002-02-05 17:54) [8]

"Winoldap" очевидно название твоей программы?
Если это так и если ты последовал "МУДРОМУ" совету Song-а, то ничего странного в этом нет!
Form1.Close; - Всего лишь приячет форму с экрана (попутно пытаясь удалить соответствующий объект!), а твое приложение так и остаеться висеть! Так что... надо больше следовать "мудрым" советам "мудрых" товарищей и еще ни текой глюк словиш!...

Короче вместо Form1.Close; нужно писать Application.Terminate; - Воэ это метод и завершит работу твоего приложения!


 
BlankAlex   (2002-02-05 18:00) [9]

Записываешь имя своей проги в реестр в ключ RunOnce


 
Pat   (2002-02-05 18:28) [10]

>AlexanderSK
Моя прога называется kamikadze :-))
Делаю следующее:

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var f:textfile;
begin
assignfile(f,"kill.bat");
rewrite(f);
writeln(f,"del kamikadze.exe");
writeln(f,"del kill.bat");
closefile(f);
application.terminate; //все равно не помогает
winexec("kill.bat",sw_hide);
end;

А Winoldap все равно остается...:-((


 
AlexanderSK   (2002-02-06 11:23) [11]

winexec("kill.bat",sw_hide); - Выполняться НЕ будет!


 
Pat   (2002-02-06 12:09) [12]

>AlexanderSK
Да все нормально выполняется. Меня "мусор" ввиде Winoldap интересует...
Кстати, почему winexec("kill.bat",sw_hide); не должен выполняться?


 
Rem   (2002-02-06 13:03) [13]

>AlexanderSK
Если Form1 - главная форма программы, то при Form1.Close
приложение заканчивает работу. Именно это имел в виду Song,
на которого Вы так "по-товарищески" наехали.
>AlexanderSK
WinExec("kill.bat", SW_HIDE); - выполняется, так что еще
не понятно кто "мудрый"?


 
MadBurro   (2002-02-06 23:31) [14]

Vot kod. Rabotajet na Win9.X, proverial

program delself;

uses
windows;

procedure DeleteSelf;
var hModule:THandle;
szModuleName:array[0..MAX_PATH] of char;
hKrnl32 : THandle;
pExitProcess, pDeleteFile, pFreeLibrary,pUnmapViewOfFile : pointer;
ExitCode:UINT;
begin
hModule:= GetModuleHandle(nil);

GetModuleFileName(hModule, szModuleName, sizeof(szModuleName));


hKrnl32 := GetModuleHandle ( "kernel32" );
pExitProcess := GetProcAddress ( hKrnl32, "ExitProcess" );
pDeleteFile := GetProcAddress ( hKrnl32, "DeleteFileA" );
pFreeLibrary := GetProcAddress ( hKrnl32, "FreeLibrary" );
pUnmapViewOfFile := GetProcAddress ( hKrnl32, "UnmapViewOfFile" );

ExitCode := system.ExitCode;

if($80000000 and GetVersion())<>0 then
// Win95, 98, Me
asm

lea eax, szModuleName
push ExitCode
push 0
push eax
push pExitProcess
push hModule
push pDeleteFile
push pFreeLibrary
ret
end
else
begin
CloseHandle(THANDLE(4));

asm
lea eax, szModuleName
push ExitCode
push 0
push eax
push pExitProcess
push hModule
push pDeleteFile
push pUnmapViewOfFile
ret
end
end
end;

begin
DeleteSelf;
end.



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

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

Наверх




Память: 0.48 MB
Время: 0.004 c
1-2622
Ищущий
2002-04-20 19:44
2002.05.02
Case-пакеты


1-2532
Ежик2
2002-04-21 19:23
2002.05.02
А где берут модуль Match?


3-2492
Dmitry V. Averuanov
2002-04-08 18:33
2002.05.02
Нужно


3-2468
Reef
2002-04-11 06:25
2002.05.02
Delphi5 + IB6 + русский язык


1-2506
Ilya2000
2002-04-20 20:36
2002.05.02
Основная





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский