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

Вниз

Удаление *.exe файла во время его работы   Найти похожие ветки 

 
Hawk   (2002-10-05 13:53) [0]

Народ вообще в win32 возможен сабж?
Тоесть чтобы программа сама себя удалила.

Зарание спасибо.


 
Карлсон   (2002-10-05 14:06) [1]

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


 
Hawk   (2002-10-05 14:09) [2]

насколько я знаю во время выполнения программы она полностью сидит в памяти а на сам .exe файл накладывается какой то атрибут чтобы нельзя было удалять... или я не прав? кто - знает помогите!


 
Pat   (2002-10-05 15:41) [3]

Для Win9x (не мое)

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;


Или можно через bat файл, но это не во время работы программы :-)) А результат тот же :)


 
Song   (2002-10-05 17:41) [4]

Делают bat файл в который записывают цикл удалять файл пока он не удалится.



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

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

Наверх





Память: 0.45 MB
Время: 0.007 c
4-45626
Deus
2002-08-29 18:21
2002.10.14
Как запустить прогу и получить handle её главного окна?


7-45606
dera
2002-08-04 17:53
2002.10.14
Как в реестре создать раздел, и в нем строковой параметр?


1-45296
race1
2002-10-04 16:52
2002.10.14
колонки


1-45247
Menel
2002-10-04 10:41
2002.10.14
Как достать width и height картинки


4-45631
Vvedensk
2002-08-29 16:00
2002.10.14
Буфер обмена в Windows.





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