| 
      ...replace a running DLL?
     | 
   
   
    | Autor: 
      Thomas Stutz     | 
   
  | [ Print tip 
] |   |   |   
 
 
 
function SystemErrorMessage: string; 
var  
  P: PChar; 
begin 
  if FormatMessage(Format_Message_Allocate_Buffer + Format_Message_From_System, 
                   nil, 
                   GetLastError, 
                   0, 
                   @P, 
                   0, 
                   nil) <> 0 then 
  begin 
    Result := P; 
    LocalFree(Integer(P)) 
  end  
  else  
    Result := ''; 
end; 
 
 
// Path to Original File 
 
procedure TForm1.Button2Click(Sender: TObject); 
begin 
  if Opendialog1.Execute then 
    edit1.Text := OpenDialog1.FileName; 
end; 
 
// Path to New File 
 
procedure TForm1.Button3Click(Sender: TObject); 
begin 
  if Opendialog2.Execute then 
    edit2.Text := OpenDialog2.FileName; 
end; 
 
// Replace the File. 
 
procedure TForm1.Button1Click(Sender: TObject); 
begin 
  if (Movefileex(PChar(Edit1.Text), PChar(Edit2.Text), MOVEFILE_DELAY_UNTIL_REBOOT) = False) then 
    ShowMessage(SystemErrorMessage) 
  else 
  begin 
    ShowMessage('Please Restart Windows to have these changes take effect'); 
    halt; 
  end; 
end; 
 
 
  
                       |