- 締切済み
レジストリ変更で、『次の種類のファイルは隠す』設定にするには?
こんにちは。 システムの都合で、クライアントPC上で常に『隠しファイルが表示されない』状態を保っておく必要があります。 通常、フォルダオプションで、『次の種類のファイルは隠す』の設定にすれば良いのですが、逆に、フォルダオプションをユーザーが変更出来ないようにしたいのです・・・ このために、フォルダオプションに関するレジストリ『HKEY_CURRENT_USER\Software\Microsoft\Windows\Explorer の ShellState』を監視して、設定が変更されたらこれを強制的に元に戻す、といった事をしています。 ・・・なのですが・・・、このレジストリ値を変更しただけでは、Windows に設定が反映されないのです。(再起動すると設定が反映されるのですが) シェルプロセスだけをリブートしても結果は同じです・・・ そこでご質問なのですが、レジストリの『ShellState』を変更した場合、設定を反映させるために何か手続きが必要なのでしょうか?(フォルダオプションで『適用』をクリックすると、即座に設定が反映されるので、再起動以外にも、何か他に方法があると思うのですが・・・) ご存知の方がおられましたら、ご教授をお願い致します。宜しくお願い致します。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- haporun
- ベストアンサー率40% (230/562)
窓の手にフォルダオプションを隠す設定がありませんでしたっけ。 もしかしたら使えるかも(自信なし)。
やったことがないのでわかりませんが、Internet Explorerにはインターネットオプションに関する 制限が設定できるレジストリキーがあります。 フォルダオプションについても、多分存在すると 思うので、探してみてはどうでしょうか。 #会社では調べようがないので、家に帰ったら、 #また書き込みます。 ではでは☆
お礼
お返事ありがとうございます。 なるほど・・・IEの方から攻めて行けば良いのかも知れませんね。一筋の光が見えてきたような気がします。これからIE系を調べてみます。
- yamma
- ベストアンサー率27% (29/107)
発想を変えて、システムポリシ-を使うというのでは だめですか?
お礼
お返事ありがとうございます。 システムポリシーでは、この手の規制が無いですよね。そもそも、こうしたセキュリティ要件のクライアントに、Win9Xを使う事が間違っているのかもしれませんが・・・
レジストリの変更は再起動後でないと有効になりません ですのでいくら書き換えたところで再起動しないと 駄目です。 #Windowsは、レジストリ情報を起動時に読みとって #いるためこういったことになります。 レジストリの監視をしているなら変更された時に 再起動するようにダイアログをだしたら同でしょう? 2、3秒に1回監視し変更があれば 「システム情報が更新されました。再起動します。」 みたいなメッセージを表示し再起動を必ずするように するとかした方がいいですよ!!
お礼
まったくその通りですが、 Windows98では問題無く反映されたり(レジストリキー自体が95と異なっていますが)、実際にOS上での『フォルダオプションの変更』操作は、リブートが必要ない操作ですよね。。。 という藁をも掴む想いでいるのですが、やっぱりダメでしょうか・・・ ただ、リブートを介在させてしまうと・・・苦情が殺到してしまうかも・・・と思ってしまう私でした・・・。
- yoshioz
- ベストアンサー率28% (10/35)
恐らくExplorerがその変更に気づいていないのだと思います。 プログラムを書けるのなら SystemParametersInfo()で SPIF_SENDCHANGEをしていしてやるとイケるかもしれません。 これでシステム情報の変更があったことを各アプリケーション、OSに通知します。
お礼
ご指導ありがとうございました。 ・・・ダメでした。 というより、シェル系の設定変更を通知するアクションがなかったので、SPI_SET系のアクションを片っ端から投げてみたのですが・・・はぁ・・・ Windows自体は、どうやって変更を反映しているのでしょうねぇ???
お礼
お返事ありがとうございます。 一番最初に私も、窓の手でいけるとおもっていたのですが・・・無かったです(残念)