1

I want to make a change on windows explorer by modifying specific registry value directly. but, the explorer is changed since I restart it ONLY.

I guess that reloading the cache of the explorer's setting is a proper solution. But, I don't know how to reload the cache programmatically.

Is there anybody who know the solution?

UPDATE:
I think that my question do not give you enough information. When I changed any policy of internet settings on registry, I expect that the change would affect the windows explorer immediately. But it didn't do that. Thus, I tried to monitor the behavior of the explorer using ProcessMonitor made by sysinternals. By monitoring, I discovered the explorer didn't get the value from registry each time.

Therefore, I really wanted to know how to make the explorer get the value.

Kyokook Hwang
  • 2,682
  • 21
  • 36
  • Does it work if you hit F5? If so these may help. [here](http://stackoverflow.com/questions/647316/how-can-i-programmatically-refresh-windows-explorer) and [here](http://stackoverflow.com/questions/647270/how-to-refresh-the-windows-desktop-programmatically-i-e-f5-from-c) – RNJ Sep 17 '12 at 08:07
  • No, It doesn't work. F5 doesn't affect to reloading setting of windows explorer. – Kyokook Hwang Sep 17 '12 at 08:44
  • 3
    What specifically are you changing? have you tried broadcasting WM_SETTINGCHANGE – Alex K. Sep 17 '12 at 10:39
  • What registry and what cache you talk? AFAIK Explrer dont use any cache but many type of settings are stored as DPA and DSA. – Xearinox Sep 17 '12 at 11:28
  • What do you mean it's indirect? It communicates directly with the relelvant components. The registry is just a backing store. NEVER make registry changes to try an alter other applicatiosn behaviour unless they explicitly document that method. – Deanna Sep 18 '12 at 08:58
  • @Deanna I found that the explorer checks a value of specific registry. So, I thought that I would affect the explorer by modifying specific value of the registry before the explorer checks the value. But, I realized it's wrong. To be candid, I had thought that the action I tried to do is a direct way, and using conponents is an indirect way. But now, I agree with your view. – Kyokook Hwang Sep 20 '12 at 02:27
  • There exists documented methods for a reason. If you've found an answer, can you [post it as an answer](http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/). Thanks. – Deanna Sep 20 '12 at 08:06

2 Answers2

0

My Own Answer

I'm not sure the following solution is best. I tried to use IInternetZoneManager and IInternetSecurityManager to modify the internet setting. It's a indirect way. This COM module helped me to affect the explorer immediately.

Deanna
  • 23,876
  • 7
  • 71
  • 156
Kyokook Hwang
  • 2,682
  • 21
  • 36
0

as far as I know, Windows Explorer (not Internet Explorer), the embedded file browser of WIndows GUI, doesn't load registry value until a restart of the component. One thing you could try to do is restarting explorer (not iexplore) by task manger. It should reload and read again registry settings.