ファイル名のところにドライブ名やパスを入力すると、そのディレクトリにカレントを
移動できますよね?。これを画一的に禁止する方法ってないでしょうか。
具体的には、C:¥Windowsとか入力されて、システムファイルを見られたり名前を変更されたり
するのを防ぎたいと思います。
メモ帳に限らず、コモンダイアログを使用するアプリできるだけ多くで適用されるものが
望ましいので、ローカル/ドメインポリシーやレジストリ操作で実現出来るとベストです。
http://www.hatena.ne.jp/1088675804#
Windows2000で、コモンダイアログ(メモ帳とかでファイル->開くで出てくるアレ)で、 ファイル名のところにドライブ名やパスを入力すると、そのディレクトリにカレントを 移.. - 人力検索はてな
エクスプローラのツール→フォルダオプション→表示タブの
「保護されたオペレーションシステム ファイルを表示しない(推奨)」にチェックを入れる設定ではダメですか?
http://homepage2.nifty.com/winfaq/accessprivileges.html
Windows.FAQ - 基礎講座:ファイル、フォルダのアクセス権
こちらで、ローカルフォルダの保護方法を記載しています。
このようなことでしょうか。
う〜ん、この方法だと、WINNT以下とか、ProgramFiles以下とか、いろいろ指定しないといけないですね。。。
OSにログインしているユーザーか、システムアカウントそれぞれどこを許可するか悩まなければならないので、
この方法での実現はちょっと避けたいです。
http://www.kanazawa-net.ne.jp/~pmansato/CommonDialog.htm
コモンダイアログのカスタマイズ
コモンダイアログのカスタマイズ方法の
説明があります。
http://www.kanazawa-net.ne.jp/~pmansato/Software.htm#comdlg
BCB/VB/JPERL/API Software
これはプログラムをコードを書くときの設定ですよね?実際には「メモ帳」や「ペイント」など、既存の
アプリケーションの動きを規制したいのでこの方法では
無理ですね。説明不足でゴメンナサイ。
プログラム作らないと無理です
というか作ってみました
WindowsClass名を取得して #32770の可視WINDOWを監視しながらWM_CLOSEをPOSTMESSAGEするだけです
いかがでしょうか?
プログラムまで作っていただいて申し訳ないのですが、コモンダイアログを禁止するのではなく、コモンダイアログでのディレクトリの移動(リダイレクト?)
を防ぎたいと思います。
なお、作っていただいたプログラムでは、エディタ終了時の「保存しますか?」も
ブロックしてくれました(涙)
質問があいまいで申し訳ないです
先ほどの回答と同じです.
「権限を設定する」とありましたが,ユーザ単位で権限を設定する事もできますし,グループ単位で権限を設定することもできます.(最初から設定されているPower Users,Administrators,Users,など〜〜sはグループです)
面倒でも,これが一番確実だと思います.
もしやるとしたら、グループ単位になると思います。
しかし、たとえばシステムフォルダについて、実行ユーザーSYSTEMは全部触れよくても、ログインユーザー(たとえばDaigo)に、どこまでアクセス権限を与えていいか、
判断するためにフォルダを全部調べるのが辛くてコモンダイアログを
ブロックするほうを考えてました。検討してみます。
>コモンダイアログを禁止するのではなく、コモンダイアログでのディレクトリの移動(リダイレクト?)を防ぎたいと思います。
なるほど、他の回答のコメントを見ないで回答してしまって申し訳ありません
では、特定のWindow名をもつWindow自体をブロックしてはいかがでしょうか?
今度のソフトは特定のCaptionを持つWindowを全て閉じます(設定の保存可能)
こんな感じでブロックできれば、SystemファイルやDLL、隠しファイルを見れないのであればコモンダイアログから C:¥を見ても無駄になると思いますからこれをちょっと応用すれば十分ではないでしょうか?
なるほど。開いては困るディレクトリを絞り込めれば
これの応用で出来ると思います。でも、それなら先に
あった、ディレクトリのアクセス権でも出来そうな気が・・・
ちょっと質問の意味をくみ取りきれていないのですが,権限には,
「変更,実行,書き込み,フォルダの一覧表示」があります.
制限したいユーザには,書き込みと一覧表示を禁止すればよいのではないでしょうか?
c:¥winnt以下全部をそうすれば良いと考えています.
#壁紙設定や起動音の設定,フォルダ表示のカスタマイズなどができなくなるかもしれません.
C:¥WINNT¥Media
C:¥WINNT¥Web
は除外してやれば良いかもしれません.
壁紙の切り替えが出来ないのとトレードオフでなら
いいかもしれません。C:¥Winnt¥tempとかintenet logとか、いろいろ書込み禁止にしてはやばそうなものが
あるように思います。
http://www.monyo.com/technical/windows/20.html
NTFSのアクセス権を一括して設定する
おっしゃるようにコモンダイアログの動作を制限出来たとしても、
エクスプローラから直接ファイルを開く人もいるでしょう。
そうすると、みなさまご指摘の通りアクセス許可を
設定するほかに方法は無いと思います。
ただ、安易にシステムやプログラムフォルダへの
アクセス許可を変えてしまうと身動きとれなく
なりますので十分ご注意ください。
最悪、起動しなくなります。
おっしゃるとおり、アクセス権を精緻に設定できれば
いいのでしょうが、ちょっと間違えると即システムが
動かなくなくなるような気がして。
そこで、逃げのようですが、一番抜け道になりそうな
コモンダイアログのリダイレクトを禁止しようと考えたわけです。ご意見ありがとうございます
かなり邪道かもしれませんが、上記URLのようなキー入力支援ソフトがあります。
これはアプリごとに「カンマを入力したら必ずスペースを挿入する」というようなことが出来るそうなので、
フルパス指定になりそうな入力(¥とか)が押されたときに、ESCも送ってしまうようにしてブロックというのはどうでしょう?
ん〜、これが直接解決方法になるとはちょっと思いにくい
のですが、発想が非常に面白いです。ありがとうございます。
URLはダミーです。
ファイルの直指定も防ぐとなると、やはりアクセス権の問題になります。
コモンダイアログだけ殺せたとしても、
ファイル名を指定して実行やエクスプローラやコマンドプロンプト、その他ファイルをアクセスするツールもありますのでやはりアクセス権を設定するのが王道ではないかと思います。
ちなみにコモンダイアログは、プログラム的にはファイルの場所を返すだけです、実際にファイルにアクセスしているのは各プログラムが行なっています。
やはりアクセス権を設定するのが正道ですよね・・・
コモンダイアログを使わない他のプログラムも
あるので、そっちを防ぐためにも、アクセス権で
やるべきなのは良くわかっているのですが・・・
ありがとうございました。
ん〜、でも、ファイル名をフルパスで入力されちゃうとダメですよねぇ?
教えていただいた設定は、MSだったかの推奨設定で設定しています。ありがとうございます。