Logo

  DELPHI - FAQ

  Delphi-FAQ | Allgemeine Tipps | Grafik | Datenbanken | VCL | DLL-Programmierung |
 
  Delphi-FAQ | Datenbanken | Interbase (IBX) |
  Login ohne DFÜ-Fenster

Bei jedem Öffnen der Datenbankverbindung meldet sich als erstes die Anmeldung des DFÜ-Netzwerkes. Schaltet man im IE unter Optionen/Verbindung diese ab, kommt das Fenster nicht mehr. Aber viele Programme, die eine DFÜ- Verbindung benötigen (auch der IE) kommen dann damit nicht mehr zurecht. In meinem Lösungsvorschlag wird die Anmeldung dynamisch an und abgeschaltet. Achtung Beim Update auf den IE 5.5 wurde der Variablentyp des Schlüssels geändert.
// Datenbankverbindung öffnen, und dabei das DFü-Fenster unterbinden

const
  Key1 = '\Software\Microsoft\Windows\Currentversion\Internet Settings';
  Key2 = 'EnableAutodial';
  EnableAutoDial    = 1;
  DisableAutoDial   = 0;

{ Der SchlÜsselTyp von Key2 wurde mit dem Internetexplorer 5.5 geändert}

procedure Database_Connected(db: TCustomConnection);
var
  reg               : TRegistry;
  isKey             : Boolean;
  i                 : integer;
  procedure _writekey(Value: integer);
  begin
    if isKey then
      case reg.GetDataType(key2) of
        rdInteger: reg.WriteInteger(Key2, Value);
        rdBinary: reg.WriteBinaryData(Key2, Value, sizeof(Value));
      end;
  end;
begin
  if not db.Connected then begin
    Screen.Cursor := crSQLWait;
    try
      reg := TRegistry.Create;
      try
        isKey := reg.KeyExists(Key1);
        if isKey then begin
          reg.OpenKey(Key1, false);
          isKey := reg.ValueExists(Key2);
          if isKey then
            case reg.GetDataType(Key2) of
              rdInteger: I := reg.ReadInteger(Key2);
              rdBinary: reg.ReadBinaryData(Key2, I, SizeOf(I));
              else i := 0;
            end;
          isKey := I = EnableAutoDial;
        end;
        _writekey(DisableAutoDial);
        try
          db.Connected := true;
        finally
          _writekey(EnableAutoDial);
        end;
      finally
        reg.Free;
      end;
    finally
      Screen.Cursor := crDefault;
    end;
  end;
end;




 26.01.2006 © wlsoft www.wlsoft.de