Главная страница
    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.006 c
3-2453
Jakov
2002-04-05 20:35
2002.05.02
Гиганты мысли, помогите открыть базу даных


14-2679
Bboy
2002-03-26 22:02
2002.05.02
Очередь загрузки в Windows


14-2682
Ajax
2002-03-23 11:08
2002.05.02
Экспорт реестра


1-2591
Reticent
2002-04-19 17:39
2002.05.02
строка в Registry


3-2466
Igor_
2002-04-11 09:59
2002.05.02
Отладка хранимой процедуры в InterBase





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