[No.732090の逆]好きなフォルダをエクスプローラでのデスクトップ直下等に置く

このQ&Aのポイント
  • No.732090の内容から指定された部分にCLSIDを指定することで、そのフォルダや特殊なファイルをおくことができることがわかりました。そしてこれがいろいろなところで応用できることがわかりました。
  • しかし、「ここにマイドキュメント等とはまったく違う"C:\Program Files"あたりを持ってこれないだろうか?」ということがあります。この質問では、「C:\Program Files」をCLSIDと結び付けてフォルダを指定する方法が分からないと困っています。
  • 過去の質問から、「デジカメ用のフォルダが出来た」という話を見ました。これはおそらくWindowsがもともと準備していないフォルダであり、後から登録されたものだと考えています。自分も同じ手段でフォルダを登録できるのではないかと考えましたが、マイドキュメントやデスクトップのパスをレジストリエディタで検索しても発展性がなさそうで困っています。
回答を見る
  • ベストアンサー

[No.732090の逆]好きなフォルダをエクスプローラでのデスクトップ直下等に置く

No.732090の内容から 指定された部分にCLSIDを指定することで そのフォルダや特殊なファイルをおくことが出来ることがわかりました そしてこれがいろいろなところで応用できることがわかりました ・・・・が、気になったことが。 「ここにマイドキュメント等とはまったく違う "C:\Program Files"あたりを持ってこれないだろうか?」ということ。 (マイドキュメントをリネームしたりターゲットを変えるのではない。両方表示状態とかにしたい) しかし、ここに並べられているのは数字の羅列です。 さて、これを実現するには "C:\Program Files"を何らかの形で CLSIDと結び付けなければならないのでしょうが、 その方法が分からないんです。 過去の質問から(番号失念) 「デジカメ用のフォルダが出来た」 という話を見ました これはおそらくマイドキュメントのように Windowsがもともと準備していたものではないだろうと 判断しています ということは、「後から登録された」のであり、自分も 同じ手段で登録すれ できるのではないか・・・と考えました 一応、 マイドキュメントやデスクトップのパスを レジストリエディタで検索をかけてみましたが、 この2つがもともと用意された指定っぽくて(値名失念) 発展性があまりなさそうに見えたんで困ってしまい・・

noname#6715
noname#6715

質問者が選んだベストアンサー

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.4

>しかも自分の理解力の無さか、 >InprocServer32にshell32.dllを設定したり >PropertySheetHandlersをおく時 >「自分は"何の処理のために"何をどうしているのか」 >が全然想像できず・・・・ >難しい・・・(~△~) ここらへんのことを普通の人が考えるのはかなり難しいですね。 で、資料はどこにあるかというと、Windowsなんで、 やっぱりMicrosoftです。 しかも、レジストリは一般ユーザがいじるものではなく 開発者(プログラマーとか)がいじるものなので、 技術文章のようなものになってしまいますし、 詳細な資料は英語になってしまいます。 ちなみに、 >InprocServer32にshell32.dllを設定したり じつは不要です(^^;; キー自体を削除しても動くはずです。 これは何かというと、COMと呼ばれる技術でDLLやActiveXコントロールを使うときにDLLの名前を取得するためのものです。ThreadingModelはマルチスレッドでそのDLLを使用可能か?といった情報です。 >PropertySheetHandlersをおく時 ファイルやフォルダのプロパティに、新しいタブシートを挿入するプログラムを呼び出すためのキーです。 ということで、はっきり言ってこれも不要なんですよね(^^;; で、エクスプローラの左側にできたアイコンを再確認したところ、展開できませんでした(^^;; これについては勘弁してください・・・ レジストリのシェル拡張、あんまり知らないもんで。

noname#6715
質問者

お礼

ありがとうございます おととい、昨日テストだったのでお礼が遅くなりました。 >レジストリは一般ユーザがいじるものではなく開発者 >(プログラマーとか)がいじるものなので、 ひそかに開発者志望だったり・・・・(汗) でもWinprocすら使ったことなかったり >これは何かというと、COMと呼ばれる技術でDLLや>ActiveXコントロールを使うときに >DLLの名前を取得する しかも、EXEしか作ったことがなく、 DLLやOCXを作ったことがない。 ・・・それはともかく、この辺の話がわかりそうな ソース(できればVB.NET)はないでしょうか? 今回の場合はここに指定されたDLLによって このフォルダ(のハンドラ)が 呼び出せるようにするんですよね?? >ファイルやフォルダのプロパティに、新しいタブシー >トを挿入するプログラムを呼び出すためのキーです。 確かに不要っぽい >で、エクスプローラの左側にできたアイコンを再確認 >したところ、展開できませんでした(^^;; う~ん残念。自分も#3読んでAttributesを調べようと 検索したが上手くはいかず(涙) もうちょい待ってみようかなっ。

noname#6715
質問者

補足

とりあえず、いったん締め切ります。 これから英語の文章読むのかと思うと少し鬱ですが。

その他の回答 (3)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.3

>しかし、知りたかったのは左側のツリーにも追加することであるが、 >ここで成功したのは右側の領域での話のみであった。 ツリーのところにも、デスクトップの両方に表示されているものといえば、マイドキュメントですよね。 で、No.732090にも書いてあるとおり、 マイ ドキュメント {450D8FBA-AD25-11D0-98A8-0800361B1103} です。 これをレジストリで検索していくと、 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID に、キーがありました。 そのなかのShellFolderの中のAttributes(属性ですね)の値がDWORDで16進でf0400174となっていました。 ここで思い出していただきたいのが、#2のなかで、作った場所やタイプは違いますがShellFolder、Attributesって追加しましたよね。 つまり、Attributesの値は、#2では00 00 00 00(特別な設定なしってことかな?)でしたが、マイドキュメントと同じにしたらどうなるか? ということです。 で、実際に、 HKEY_CLASSES_ROOT\CLSID\{FD4DF9E0-E3DE-11CE-BFCF-ABCD1DE12345}\ShellEx\PropertySheetHandlers\{FD4DF9E0-E3DE-11CE-BFCF-ABCD1DE12345}\ShellFolder のAttributesをDWORDで16進でf0400174にしてみると、 ご希望のように、エクスプローラの左側にも表示されました。 これでいかがでしょうか?

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

参考url、ぜんぜん情報足りませんでした。 失礼しました。 ずばりの方法です。 googleのキャッシュなので消えちゃうかも(^^; http://www.google.co.jp/search?q=cache:uuT0QmnCt3EJ:pcweb.mycom.co.jp/column/winxp/winxp091.html+ShellFolder+Attributes&hl=ja&lr=lang_ja&ie=UTF-8 ちなみに、本家本元の情報です。 http://www.microsoft.com/japan/msdn/windows/windows2000/shellinstobj.asp

noname#6715
質問者

お礼

ご回答ありがとうございます。 確認してみました。 しかし・・・・ ・・・半分成功、半分失敗といったところでしょうか。 ▼成功 この記述の手順を踏むことで確かに、 CLSIDにフォルダを適用できたようで、 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\ Explorer\MyComputer にそのCLSIDを登録した結果 エクスプローラでマイコンピュータをクリックした際、 前述の[その他]には「My Folder」という名のフォルダで C:\My Folderへのリンクが出来ていた。 (ちなみに良く分からないDelegate Folderにもキーを作成したが 何も変わった様子は無い) ▼失敗 しかし、知りたかったのは左側のツリーにも追加することであるが、 ここで成功したのは右側の領域での話のみであった。 ↑ここが解決したら締め切ります しかも自分の理解力の無さか、 InprocServer32にshell32.dllを設定したり PropertySheetHandlersをおく時 「自分は"何の処理のために"何をどうしているのか」 が全然想像できず・・・・ 難しい・・・(~△~) ---------------------------------- おまじないに励むことにするかなぁ・・・・ あ、あと、マイページのコメントに 自分の手に負えなくなった未解決事件がたくさんあります。 どうぞよろしく。

noname#6715
質問者

補足

ご回答ありがとうございます。 今は実験用マシンは父が使用しているので (注:マシンは父のものです。いじくり倒してますが) 兄のマシンを使用しているのですが 父に比べて、兄は変更すると結構うるさいので 明日確認することにします。 ------------------------------------------- 本家本元の情報は・・・ ちょっと僕には理解できないかも。

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

>ということは、「後から登録された」のであり、自分も 同じ手段で登録すれ >できるのではないか・・・と考えました こちらをどうぞ http://www.geocities.co.jp/SiliconValley-SanJose/6898/tips_clsid.htm

参考URL:
http://www.geocities.co.jp/SiliconValley-SanJose/6898/tips_clsid.htm
noname#6715
質問者

補足

ご回答ありがとうございます 以下のことを行った結果、失敗しました 自分が思いっきり何らかの勘違いをしていると思うので 添削をお願いします。 HKEY_CLASSES_ROOT\CLSIDに新たなCLSIDを登録する必要があり、 一番上が{00000010-0000-0010-8000-00AA006D2EA4}だったため 単純に{00000009-0000-0010-8000-00AA006D2EA4}のキーを追加 図にある infotip,DefaultIcon,shell\findは 後で指定すればいいと考え飛ばしました そして、このCLSIDの指定内のどこかにに"C:\Program Files"を 書くはずだと思ってみていると図では shellex\ExtShellFolderView\{5984FFE0-28D4-11CF-AE66-08002B2E1262}の PersistMonikerにパス(何のパスかは理解していない)が指定されているので そのキーを作成しPersistMonikerを文字列値として作成し、 データとして"file://C:\Program Files"を指定。 ("file://"はよく分からないので一応つけました) その後、 {00000009-0000-0010-8000-00AA006D2EA4}のキーを HEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Explorer\MyComputer\Namespaceに追加。 レジストリエディタを閉じ、 エクスプローラでマイコンピュータを見たところ、 ツリーには表示されていないものの いつもある [ハードディスク ドライブ] [リムーバブル記憶域のあるデバイス] の他 [その他]が出来ており、ここに 名前の無いフォルダが出来ていました。 ダブルクリックしても透明になっただけで何も起こりません。(汗) 右クリックしたところ 切り取り ショートカットの作成 削除 しか存在しません

関連するQ&A

  • C:\直下に作られたフォルダーを移動したい

    C:\の下に直接フォルダーを作らないようにしたいのですが、 アプリケーションインストールなどで以下のフォルダを 勝手に作られていまいました。 \HanPurple (ハンゲーム?) \PSFONTS (PSフォント フィナーレ?) これを \Program Files\HanPurple \Program Files\PSFONTS 等、別の所に移動して、アプリケーションも 正常起動するようにしたいのですが、 可能でしたらやり方教えて頂けませんでしょうか? レジストリーを弄るようなやり方でも構いません。 以上お願いします。

  • インストールフォルダを変更したい

    アプリをインストールするときにデフォルトで表示されるフォルダ名を「C:\Program Files」から「D:\Program Files」に変更したいのですが、レジストリのどこを書き換えればいいんでしょうか?。OSはWindows 7 64bitです。

  • 透明フォルダ

    C:\Program Filesのフォルダを見てるのですが、 一つだけフォルダが透明なのがあります。 なぜ透明なのでしょうか? フォルダの中身は空です。

  • Windows7のフォルダ

    Windows7 Ultimate 64bit を使用してます。 ローカルディスク (C:) の中にあるフォルダで、 『Program Files 』 と 『Program Files(x68) 』 というフォルダがあるのですが、 『Program Files(x68) 』 というフォルダを作成した覚えはないのですが、7では最初からあるものなのでしょうか?このフォルダの存在理由もわかる方みえたらご教授ください。ちなみに、前は Xp を使ってたのですが 『 Program Files 』 フォルダのみでした。よろしくお願いします。

  • 長いフォルダ名のファイルが開きません

     テキストエディタを乗換えたのですが、 長いフォルダ名(例えばProgram Files等)以下のフォルダの テキストファイルが開けなくなってしまいました。 対処方法を教えてください。

  • アプリのインストール先フォルダ

    Windows 7の場合アプリをインストールする時、インストール先を指定する欄が デフォルトでは「C:\Program Files (x86)\アプリ名」か「C:\Program Files\アプリ名」と表示されますが、うちはDドライブにアプリをインストールするようにしているので「D:\Program Files\アプリ名」と表示してくれるといちいち入力し直さなくて済むので都合がいいです。で、レジストリをいじればそれが出来そうな気がするんですが、どこをいじればいいでしょうか?

  • Windows10 でのフォルダ名とテキスト

    Windows10 でのフォルダにはProgram Filesとかブランクが入る場合があります。一方でテキストでフォルダ名を指定する場面もあります(パス指定風のとき)。この場合、Program Filesとするのか、Program_Files とか"Program Files"とかそれなりに工夫するのでしょうか。これを指定する設定場面次第ということでしょうか。 また、フォルダ名が日本語だったり、英数字だったりすることがあります。どっちかが正しいのか、あるいはどちらでもいい(エイリアスとかリンク(ショートカット))ということなのでしょうか。テキストでフォルダを指定する場合、やはり疑問を感じるのですが。 いずれにしても確実にフォルダ名の指定が効いているという感じがしないのですが。うまくいかない原因の追究している時などです。よろしくお願いします。

  • デスクトップフォルダを移動させるには

    こんばんは。WinXP Pro使用です。 ハードディスクの円滑な運用(?)のために、マイ・ドキュメントとインターネット一時ファイルをD:ドライブに移動させるというワザをよく聞きますが、自分の場合ダウンロードファイルやよく使う書類をデスクトップに置くことが多く、最も出入りの激しいフォルダです。マイドキュメントと同様に C:\Documents and Settings\Owner\デスクトップ をD:ドライブに移動させる方法はないでしょうか。このフォルダのプロパティーを開いてもターゲットフォルダの変更というオプションはなかったのですが、単純にこのフォルダをD:ドライブにドラッグドロップすればよいのでしょうか。

  • 標準フォルダがエクスプローラで開かない

    最近、まめfileというファイラーを使用するようになりました。殆ど、windwosの標準のエクスプローラを使用しなくなりましたが、今でも、たまに使用する事もあります。 昨日、不要なレジストリをフリーソフトで掃除したのが原因なのかどうかわかりませんが、フォルダを開くと、以下のようなメッセージがでるようになり困っています。 『指定されたファイルに対してこの操作を行うプログラムが関連づけられていません。[フォルダオプション]コントロールパネルでプログラムの関連づけをしてください』というエラーメッセージが出ました。フォルダオプションを開いて試みましたが、良くわかりませんでした。この症状を改善する方法を教えて欲しいのです。 また、この質問をする時に思ったのですが、windwosの標準のダイアログボックスをコピーするツールなどないでしょうか?

  • アプリをインストするフォルダ。

    通常私は、アプリをインストする場合、指定通りc:\program filesのフォルダの下に インストするわけですけども、あるアプリなどは 何の問題もなくても、スキャンディスク実行時パス名が 66文字を超えるものは、エラーになります。問題はなくても エラー表示をさせたくない場合、 対策としてはHD直下にこれをインストするフォルダを 作成(短い名前)し、そこにインストすればいいと教わりました。確かにそれで対策できました。 質問は、c:\program filesというフォルダはただ単なる フォルダで、エクスプローラ上、見た目、わかりやすくする為であるなら、そこの下にインストしなくても いいのかという事です。 ウィルスバスターも66文字を超えるものがありますので C直下にインストしようと思います。 普通はc:\program filesにインストしようとは思います。 どうでしょう?非常につまらない質問であると思いますが、 よろしく。