Ver Mensaje Individual
  #8  
Antiguo 22-11-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por seoane
¿Y ahora que Roman?
Se me ocurre que podríamos hacerlo vía el registro:

Código Delphi [-]
{
  Obtiene las versiones del servidor MySQL que estén instaladas en el sistema
}
procedure GetMySqlInstalledServers(Versions: TStrings);
const
  hkMySql = '\SOFTWARE\MySQL AB\';

var
  Registry: TRegistry;
  KeyNames: TStringList;
  I: Integer;

begin
  Registry := TRegistry.Create;
  KeyNames := TStringList.Create;

  try
    Registry.RootKey := HKEY_LOCAL_MACHINE;

    if Registry.KeyExists(hkMySql) then
    begin
      Registry.OpenKeyReadOnly(hkMySql);
      Registry.GetKeyNames(KeyNames);

      for I := 0 to Pred(KeyNames.Count) do
        if AnsiStartsStr('mysql server', LowerCase(KeyNames[i])) then
        begin
          Registry.CloseKey;
          Registry.OpenKeyReadOnly(hkMySql + KeyNames[i]);
          Versions.Add(Registry.ReadString('Version'));
          Registry.CloseKey;

          Registry.OpenKeyReadOnly(hkMySql);
        end;

      Registry.CloseKey;
    end;
  finally
    Registry.Free;
    KeyNames.Free;
  end;
end;

// Saludos
Responder Con Cita