Reg-Änderungen aktivieren



  • Hallo zusammen,

    vielleicht kann mir jemand bei einem Problem helfen.

    Ich möchte mit einem Tool im InternetExplorer Dinge ändern (z.B. JavaScript aktivieren/deaktivieren). Dazu ändere ich (natürlich) die entsprechenden Schlüssel und Werte in der Registrierung. Soweit so gut. Quellcode dazu:

    void __fastcall TForm1::OKButtonClick(TObject *Sender){
    //Hier wird der Wert in die Registry geschrieben
    AnsiString Schluessel = "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3";
    AnsiString Eintrag = "1400";
    TRegistry *Reg = new TRegistry;
    try{
    Reg->RootKey = HKEY_CURRENT_USER;
    Reg->OpenKey(Schluessel,false);
    int Wert = JavaScriptGroup->ItemIndex;
    switch(Wert){
    case 0 : Reg->WriteInteger(Eintrag,0); break;
    case 1 : Reg->WriteInteger(Eintrag,1); break;
    case 2 : Reg->WriteInteger(Eintrag,3); break;
    default : ShowMessage("Fehler: Unzulässiger Index von JavaScriptGroup!");
    }
    Reg->CloseKey();
    }// Ende try
    __finally{
    delete Reg;
    }// Ende finally
    //Danach Button wieder disablen:
    OKButton->Enabled = false;
    //Fehlt noch den Reg-Eintrag zu aktivieren...
    //SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,Schluessel.c_str());
    }

    Das (ungelöste) Problem besteht nun darin, daß die Änderung nicht sofort im IE aktiv wird, sondern erst nach erneutem öffnen oder nach öffnen der InternetSettings und einem Klick auf OK. Das ist natürlich aber nicht Sinn der Sache.
    Einen Hinweis habe ich bekommen daß das irgendwie mit SendMessage zu machen ist, allerdings kann ich beim Besten Willen nicht herausfinden wie genau. Die auskommentierte Zeile am Ende funktioniert jedenfalls so nicht.

    Weiß jemand die (eine) Lösung? Ich würde mich freuen.

    Bye
    Reiko


Anmelden zum Antworten