Reg-Änderung 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
ReikoEdit:
Bitte die Code-Tags benutzen. Danke![ Dieser Beitrag wurde am 08.03.2003 um 11:57 Uhr von Jansen editiert. ]
-
Macht das Disablen von TRegistry::LazyWrite einen Unterschied?
Ansonsten ist die (SendMessage-)Frage wohl eher etwas für's WInAPI-Forum.
-
Hm...gut das mit den Code-Tags werde ich das nächste mal berücksichtigen (war mein erstes Posting hier)
LazyWrite hilft auch nicht. Wenn ich die Hilfe dazu richtig interpretiere ist LayzWrite lediglich dazu da Werte weiter zu schreiben während die Methode bereits zurückkehren kann. Geht wohl in die Richtung Synchronisation und Threads?
Ins WinAPI-Forum habe ich es ebenfalls gepostet, allerdings ohne Antwort bis jetzt
-
Ich mach dann hier mal zu, weiter geht's eben in WinAPI.