- ベストアンサー
ファイルを開くとログをはく方法
・エクスプローラやデスクトップからダブルクリック もしくは ・ポップアップメニューからファイルを開く と動くプログラムを作成したいと思っています。 具体的にやりたいことは・・・ Ctrl を押しながらファイルを「開く」とファイルを圧縮してくれる。。。 というように「開く」ことによりイベント起動するようなプログラムです。 (実際ファイルは開かなくてもよいです。) なにかよいアイデアはありますでしょうか。 有識者の方、よろしくお願いします。 開発環境はVC++です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
エクスプローラでファイルをダブルクリックすると、エクスプローラはレジストリからファイルの関連付けを確認して、ShellExecuteか何かでアプリケーションを実行しているものと思われます。 エクスプローラの内部で行われていることは公開されていませんが、レジストリについては公開されているので、レジストリを使うしかないと思われます。 ファイルの関連付けにこれから作るプログラムを指定して、そのプログラムが元々のアプリケーションを起動するようにすれば、一応動作すると思います。 別の話として、SetWindowsHookExはどうでしょうか?
その他の回答 (2)
- はなおか じった(@Jitta)
- ベストアンサー率42% (69/161)
1.コマンドに対する引数を受け付けるアプリケーションを作成する 2.エクスプローラで右クリックし、「プログラムから開く」→「プログラムの選択」 3.「参照」で、作成したアプリケーションを選択する 4.必要に応じて「この種類のファイルを・・・」にチェック 「標準」ではないものにしたい場合、4でチェックせず 5.フォルダオプションのファイルの種類タブで、該当拡張子を探す 6.「詳細設定」 7.「新規」 8.適当なアクションを割りあてる 9.アプリケーションは1で作成したアプリケーション タイトルから想像される質問 →アプリケーションで、ユーザがファイルを選択するとそのことをログとして残す 内容から理解した質問 →Windowsの動作を監視する http://www.sysinternals.com/ntw2k/source/filemon.shtml →エクスプローラのファイルに対するコンテキストメニューに自作アプリケーションを追加する方法 →Windowsのキーイベントを監視して、ファイルを圧縮するアプリケーションのトリック いったい何が聞きたいの?
補足
すみません。タイトルは無視してください。 やりたいことは・・・ デスクトップもしくはエクスプローラから不特定のファイルを開いたとき、 それをトリガにして起動するプログラム(できれば非常駐プログラム)を作成したいと考えています。 ポップアップメニューと書いたので誤解を招いたと思いますが ファイルを右クリックで出てくるメニューから「ファイルを開く」を選んだ際も対象にしたいと思っています。 ※アプリケーションからファイルを開く場合は特に考えていません。 ※起動されるプログラムはファイル名を情報として取得したいです。 何卒よろしくお願いいたします。
- m0n1teur
- ベストアンサー率43% (10/23)
FindFirstChangeNotification という関数があります。 MSDNライブラリから調べればわかると思います。WaitForSingleObject等 と組み合わせます。
お礼
ありがとうございます! 常駐プログラムにすれば使えそうです! 非常駐プログラムではやはり無理そうですね。
お礼
ShellExecute・・・難しそうですね。 私のレベルでは無理なのかなぁ。 >別の話として、SetWindowsHookExはどうでしょうか? ありがとうございます! (名前を見る限り非常によさそうな名前です。) 調べてみます。