• ベストアンサー

特殊フォルダのパスを取得

ボタンを押すとエクスプローラでフォルダを開くという処理をしたいのですが、一部のフォルダのパスが分からず困っています。 開けないフォルダはMyComputer、コントロールパネル、ごみ箱などの仮想フォルダと呼ばれるフォルダです。 これらのフォルダにはSHGetSpecialFolderPath関数も通用しません。 どのようにすれば望みどおりの処理を実装できるのでしょうか? どなたかご教授お願いします。 <環境> Windows Vista VC++ Express Edition

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

  • ベストアンサー
回答No.2

>上記の2つについてはすでに確認済みで、いずれも仮想フォルダに対しては無力でした。 エラーにもならず、ただ何の反応も無いのでしょうか? とりあえず、explorerにパラメータを渡しせば開けるようです。 http://hp.vector.co.jp/authors/VA016117/cpl.html

その他の回答 (2)

回答No.3

> MyComputer、コントロールパネル、ごみ箱などの仮想フォルダと呼ばれる... 仮想フォルダではなく「特殊フォルダ」という呼び方のほうが一般的だと思います。検索する際のキーワードのヒット率も違います。 参考URLで2種類の方法が載っています。

参考URL:
http://katsura-kotonoha.sakura.ne.jp/prog/win/tip00024.shtml
回答No.1

>これらのフォルダにはSHGetSpecialFolderPath関数も通用しません。 未確認ですが、こんな情報があります。 http://www.winapi-database.com/Program/Shell/SHGetSpecialFolderPath.html こちらは、「SHGetFoldPath」の例。 http://www.accessclub.jp/bbs/0085/beginers31281.html どちらも >&H3& 'コントロール パネル >&H11& 'マイ コンピュータ >&HA& 'ごみ箱 を渡すらしいです。

kerokk
質問者

お礼

お返事ありがとうございます。 上記の2つについてはすでに確認済みで、いずれも仮想フォルダに対しては無力でした。 なにか他の方法はないでしょうか?

関連するQ&A

  • システムの特殊なフォルダのパス名の取得を取得しようとしています。

    システムの特殊なフォルダのパス名の取得を取得しようとしています。 VC++2008 Express EditionでSHGetSpecialFolderPathをつかって パスを取ってみようとネット上の例だから拝借して 下記のようなソースを書いてみたのですが、 出てくる結果が、どの場所のパスをとっても「C」しか出てこないのです。 これってなにが原因なのでしょうか? どなたかお教え願えないでしょうか? [ソース] #include<stdio.h> #include<shlobj.h> int main(){ TCHAR buf[_MAX_PATH]; SHGetSpecialFolderPath(NULL, buf, CSIDL_DESKTOPDIRECTORY, FALSE); printf("デスクトップのパスは %s です\n",buf); return 0x00; }

  • フォルダの位置

    ウイルススキャンのソフトのインストールの処理をしていまして。 インストールは、無事終わったんですけど。 その後、コントロールパネルとゴミ箱のフォルダが、左側によって 最大化しても、フォルダが大きくならなくなりました。

  • 絶対パスを相対パスに

    VC++2005 Express Editionです。 ドラッグアンドドロップで受け取った(DragQueryFile)絶対パスファイル名を相対パスに変換したいのですが、良いコードサンプルなどありましたら教えてください。できればUnicodeとマルチバイトの両方に対応させたいです。 GetCurrentDirectoryでカレントディレクトリを取得してみたのですが、この場合ドライブ名が大文字なのに対し、ドラッグアンドドロップで受け取ったドライブは小文字なので、簡単にはできそうにありませんでした。 文字列処理は今まで標準関数しか使ったことがありませんが、これを機会にコードなど勉強したいと思っています。 よろしくお願いします。

  • 隠しファイル(フォルダ)が表示されない

    コントロールパネル・・「フォルダオプション」・・「表示」・・「すべてのフォルダとファイルを表示する」 →「OK」 とやりましたが、反映されません。 以下、レジストリエディタでCheckedValueを0から1にしてもすぐ0に変わってしまいます。 http://pasofaq.jp/windows/mycomputer/checkedvalue.htm ウィルスチェック済の状態です。 他に原因はございますでしょうか?

  • フォルダの表示

    インターネットで、ウイルススキャンのソフトをダウンロードしたんですが。パソコンに入ってたウイルススキャンソフトと反発しまして。 新しいウイルススキャンソフトは、削除処理したんですが。 その後、コントロールパネルとゴミ箱のフォルダが、左側の方に寄ってしまって。困っています。

  • コントロールパネル・フォルダが不可視フォルダになってしまった

    OS9.1です。さきほどTypeRecorderというコントロールパネル書類をインストールしたところ、コンパネのフォルダが不可視フォルダに変わってしまいました。TypeRecorderは直接関係ないかもしれませんが、TypeRecorderをコンパネフォルダで確認したとたんにシステムフォルダからコントロールパネルが消えました。最初は間違ってゴミ箱に入れるショートカットキーを押してしまったかと思ったんですが、ゴミ箱を見ても入っておらず、Sherlockで検索して不可視フォルダになっている事が判明しました。とりあえず以前と同じように起動しますが、ものすごく不便です。OSのCD-ROMから立ち上げてDisk First Aidをかけてみたんですが問題ないと言われました。なんとか元に戻せないでしょうか?

    • ベストアンサー
    • Mac
  • windows8.1 フォルダも何も開かない

    ”windows8.1 フォルダが開かない”とネットで検索すると、色々回答が出てきますが、 私の場合は、PC、ゴミ箱、エクスプローラ、マイドキュメント、電源オプション、コントロールパネル、 システムなど何も開けません。 デスクトップ上の、PC、ゴミ箱などクリックしてもダメです。 開けるのは、IE、メールソフトなどの一般的ソフトウェア、ディバイスマネージャー、タスクマネージャー、イベントビューアなどです。 写真ソフトなどで、適当な写真選んでを右クリックして、”保存先フォルダを開く”をしても、 まったくだめです。 何が原因でしょうか、どうすれば直るでしょうか。 宜しくお願いします。

  • フォルダーオプションが消えた

    Windows XP SP2を使用していますが、フォルダーオプションが消えてしまいました。 通常、エクスプローラを開くとフォルダーオプションが表示されていますが、ありません。 また、コントロールパネルにもアイコンがありません。 どうすれば現れるのですか?

  • VC#でセキュアFTPを使うには?

    VC#2005 EXPRESS EDITION で、セキュアFTPを使いたいのですが、どのようにすれば実装できそうか、ご存知の方、教えてください。

  • フォルダオプションが消えてしまいました。

    Meのパソコンです。 コントロールパネル内のフォルダオプションが消えてしまいました。 かなり以前に全ての拡張子を表示するにして以来フォルダオプションを見ていなかったのですが、最近コントロールパネル内のフォルダオプションが消えているのに気がつきました。エクスプローラを起動して表示、ツールからフォルダオプションを見つけたかったのですがありませんでした。 現時点で実害はありませんが、復旧法をご存知の方がおりましたらお願い致します。

専門家に質問してみよう