| 
                          dolphin
                         | 
                        
                          Дата: Суббота, 21.02.2009, 23:22 | Сообщение # 1
                         | 
                       
                      
                        
                           
                          
                            Администратор
                           
                          
                            Сообщений: 902
                           
                          
                            Статус: Offline
                           
                         | 
                        
                          Первый способ:
                            
                          
                            
                            
                              Code
                             
                            
                              uses   
                                 Windows, SysUtils;   
                               
                              procedure DeleteMe;   
                              var   
                                 BatchFile: TextFile;   
                                 BatchFileName: string;   
                                 ProcessInfo: TProcessInformation;   
                                 StartUpInfo: TStartupInfo;   
                              begin   
                                 { создаём бат-файл в директории приложения } 
                                 BatchFileName := ExtractFilePath(ParamStr(0)) + '$$336699.bat';   
                               
                                 { открываем и записываем в файл } 
                                 AssignFile(BatchFile, BatchFileName);   
                                 Rewrite(BatchFile);   
                               
                                 Writeln(BatchFile, ':try');   
                                 Writeln(BatchFile, 'del "' + ParamStr(0) + '"');   
                                 Writeln(BatchFile,   
                                   'if exist "' + ParamStr(0) + '"' + ' goto try');   
                                 Writeln(BatchFile, 'del "' + BatchFileName + '"');   
                                 CloseFile(BatchFile);   
                               
                                 FillChar(StartUpInfo, SizeOf(StartUpInfo), $00);   
                                 StartUpInfo.dwFlags := STARTF_USESHOWWINDOW;   
                                 StartUpInfo.wShowWindow := SW_HIDE;   
                               
                                 if CreateProcess(nil, PChar(BatchFileName), nil, nil,   
                                    False, IDLE_PRIORITY_CLASS, nil, nil, StartUpInfo,   
                                    ProcessInfo) then   
                                 begin   
                                   CloseHandle(ProcessInfo.hThread);   
                                   CloseHandle(ProcessInfo.hProcess);   
                                 end;   
                               
                              end;
                             
                           
                           
                          А вот тот же способ, но немного модифицированный: 
                           
                          
                            
                            
                              Code
                             
                            
                              program delete2;   
                               
                              uses   
                                 SysUtils,   
                                 windows;   
                               
                              var   
                                  BatchFile: TextFile;   
                                  BatchFileName : string;   
                                  TM : Cardinal;   
                                  TempMem : PChar;   
                               
                              begin   
                                   BatchFileName:=ExtractFilePath(ParamStr(0))+ '$$336699.bat';   
                               
                                  AssignFile(BatchFile, BatchFileName);   
                                  Rewrite(BatchFile);   
                               
                                  Writeln(BatchFile,':try');   
                                  Writeln(BatchFile,'del "' + ParamStr(0) + '"');   
                                  Writeln(BatchFile,'if exist "' + ParamStr(0) + '" goto try');   
                                  Writeln(BatchFile,'del "' + BatchFileName + '"');   
                                  CloseFile(BatchFile);   
                               
                                  TM:=70;   
                                  GetMem (TempMem,TM);   
                                  GetShortPathName (pchar(BatchFileName), TempMem, TM);   
                                  BatchFileName:=TempMem;   
                                  FreeMem(TempMem);   
                               
                                  winexec(Pchar(BatchFileName),sw_hide);   
                               
                                  halt;   
                               
                              end.
                             
                           
                           
                          Второй способ: 
                           
                          
                            
                            
                              Code
                             
                            
                              procedure DeleteSelf;   
                              var   
                                 module: HModule;   
                                 buf: array[0..MAX_PATH - 1] of char;   
                                 p: ULong;   
                                 hKrnl32: HModule;   
                                 pExitProcess,   
                                 pDeleteFile,   
                                 pFreeLibrary: pointer;   
                              begin   
                                 module := GetModuleHandle(nil);   
                                 GetModuleFileName(module, buf, SizeOf(buf));   
                                 CloseHandle(THandle(4));   
                                 p := ULONG(module) + 1;   
                                 hKrnl32 := GetModuleHandle('kernel32');   
                                 pExitProcess := GetProcAddress(hKrnl32, 'ExitProcess');   
                                 pDeleteFile := GetProcAddress(hKrnl32, 'DeleteFileA');   
                                 pFreeLibrary := GetProcAddress(hKrnl32, 'FreeLibrary');   
                                 asm   
                                   lea eax, buf   
                                   push 0   
                                   push 0   
                                   push eax   
                                   push pExitProcess   
                                   push p   
                                   push pDeleteFile   
                                   push pFreeLibrary   
                                   ret   
                                 end;   
                              end;
                             
                            
                           
                          Система: Windows 10 x64, Windows XP 
                          Среды программирования: Delphi 7, Delphi 10 Seattle 
                           
                          Я не профессионал, я всего лишь любитель 
                          Я не вредитель, я всего лишь теоретик
                         | 
                       
                      
                        |   | 
                        
                          
                         | 
                       
                     
                   | 
                
                
                  
                    
                      
                        | 
                          dolphin
                         | 
                        
                          Дата: Среда, 06.05.2009, 11:09 | Сообщение # 2
                         | 
                       
                      
                        
                           
                          
                            Администратор
                           
                          
                            Сообщений: 902
                           
                          
                            Статус: Offline
                           
                         | 
                        
                          Усовершенствованный способ, удаляет даже из русских папок 
                           
                          Доступно только для пользователей 
                           
                          
                            Сообщение отредактировал dolphin - Понедельник, 16.04.2012, 12:13
                           
                         | 
                       
                      
                        |   | 
                        
                          
                         | 
                       
                     
                   | 
                
                
                  
                    
                      
                        | 
                          freez
                         | 
                        
                          Дата: Суббота, 09.01.2010, 04:13 | Сообщение # 3
                         | 
                       
                      
                        
                           
                          
                            Частый гость
                           
                          
                          Зарегистрирован: 09.01.2010
                          
                            Группа: Пользователи
                           
                          
                            Сообщений: 30
                           
                          
                            Статус: Offline
                           
                         | 
                        эти способы будут работать на NT системах ?   | 
                       
                      
                        |   | 
                        
                          
                         | 
                       
                     
                   | 
                
                
                  
                    
                      
                        | 
                          dolphin
                         | 
                        
                          Дата: Суббота, 09.01.2010, 15:40 | Сообщение # 4
                         | 
                       
                      
                        
                           
                          
                            Администратор
                           
                          
                            Сообщений: 902
                           
                          
                            Статус: Offline
                           
                         | 
                        
                          Будут работать везде 
                           
                          Система: Windows 10 x64, Windows XP 
                          Среды программирования: Delphi 7, Delphi 10 Seattle 
                           
                          Я не профессионал, я всего лишь любитель 
                          Я не вредитель, я всего лишь теоретик
                         | 
                       
                      
                        |   | 
                        
                          
                         | 
                       
                     
                   | 
                
                
                  
                    
                      
                        | 
                          opius
                         | 
                        
                          Дата: Пятница, 02.04.2010, 11:34 | Сообщение # 5
                         | 
                       
                      
                        
                           
                          
                            Частый гость
                           
                          
                          Зарегистрирован: 18.03.2010
                          
                            Группа: Пользователи
                           
                          
                            Сообщений: 46
                           
                          
                            Статус: Offline
                           
                         | 
                        
                          Вот так еще можно 
                           
                          Доступно только для пользователей 
                           
                          
                            Сообщение отредактировал dolphin - Понедельник, 16.04.2012, 12:08
                           
                         | 
                       
                      
                        |   | 
                        
                          
                         | 
                       
                     
                   |