views:

722

answers:

2

I've used the command-line switches for installing a Firebird database from within the install package for my application. But now I'd like to uninstall Firebird in the same way.

The problem is that the Windows install executable for Firebird was built with Inno Setup. In order to uninstall an Inno Setup executable, you have to run a file named uninst???.exe in the Firebird install directory, where ??? is some three-digit number.

Details:

  • I'm using InstallAware as my installation builder. It provides a scripting language somewhat similar to that of InstallShield.
  • I'm installing the SuperServer version of Firebird, not the embedded version. (I need concurrent user access for this application.)
+1  A: 

HKLM\Software\Microsoft\Windows\Currentversion\Uninstall\ with example like {350C97B0-3D7C-4EE8-BAA9-00BCB3D54227} Under that you will find a key named "UninstallString" you should be able to just execute that and uninstall.

Some programs are listed by name and not GUID as well so double check

A: 

there is a key in registry called DefaultInstace

in Delphi code

function TfrmMain.FBDefaultInstance: String;
var
  Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    Reg.OpenKeyReadOnly('SOFTWARE\Firebird Project\Firebird Server\Instances');
    Result := Reg.ReadString('DefaultInstance');
    Reg.CloseKey;
  finally
    Reg.Free;
  end;
end;

After you have just to stop the service and launch uninstall

DefaultPath + 'unins000.exe /SILENT /NORESTART /SUPPRESSMSGBOXES'

Hugues Van Landeghem