実現したいこと
・テキストエディタであるメモ帳にて、名前を付けて保存をした場合に、保存したテキストファイルのPathを、C#プログラムで取得したいです。
自分で調べてみた結果、メモ帳から保存したファイルPathをC#で取得できるかわからなかったので、ご教授頂けると幸いです。
上記方法以外でもメモ帳から保存したファイルPathをC#で取得できる方法があれば、ご教授頂けると幸いです。よろしくお願いいたします。
必ずメモ帳を起動しないといけませんか?(なんか、いわゆるXY問題になりそうな雰囲気)
ご指摘ありがとうございます。windows標準搭載のメモ帳は必ずしも起動している必要はございません。
重要な点としましては、C#プログラムにて、外部アプリであるメモ帳が保存したフォルダPathを取得することとなります。お手数をお掛けしますが、よろしくお願いいたします。
大目的は何でしょう。
スレッドのような形で監視するにしても場所は指定しなきゃいけないでしょうし、トリガーがメモ帳の保存?それって結局何がしたいんでしょう?
提示記事によりどこまで操作できるのか分からないですけど、保存する際って勝手に保存されず、保存する場所を自分で選びますよね。
保存まで操作できるなら保存場所も指定することになるのでは。
また、テキストエディタは、メモ帳でなければいけない訳ではございません。
サクラエディタなどのテキストエディタでも可能です。
ご指摘ありがとうございます。目的としましては、ユーザー様などが任意で保存したテキストファイルのPathを、DBでPath一覧として管理したいと考えております。
ユーザーがテキストファイルをどこに保存するかは不明のため、C#プログラムにて、テキストファイルが保存された段階で、Parhを取得したいと考えております。
完全任意だと「管理」にならないのでは。
しかも「ユーザー様」とあります。
クライアントプログラムを想定ですか?Webアプリケーションですか?
作りや概念が全く違ってきます。
どこに保存したかもわからないファイルを特定する条件を思いつく限り書いてみてください。
最も簡単なのは、任意ではなくパスを指定して開かせることです。
ご指摘ありがとうございます。
クライアントプログラムを想定しております。1台のパソコンで複数人が利用する想定です。
特定できなくてもファイルが書き換えられたことをトリガーにパスを取得する方法はあるが、ちょっと考えたら色々と不都合があるのがわかるだろう。
もしかして、保存したものをすべてデータベースに記録したいのか?
悪用したいと考えてるの?
> クライアントプログラムを想定しております。1台のパソコンで複数人が利用する想定です。
IATフックを紹介しといてなんですが、少なくとも業務用のプログラムで使うような技術じゃないんで、やめといたほうがいいです。
ご指摘ありがとうございます。
今回IATフックについて初めて知ることが出来てとても感謝しております。ありがとうございます。
結局大目的については書けないということですよね。
ずっと手段しか語られていない。
書けない理由があるんでしょうね。
やりたいことが怪しすぎる。
ある種のプロセスの監視、管理ソフトのようなものを目指しているのですかね。
例えばsysinternalの「Process Monitor」のようなものとか。
https://docs.microsoft.com/ja-jp/sysinternals/downloads/procmon
ファイルシステムフィルタードライバーとか。
https://docs.microsoft.com/ja-jp/windows-hardware/drivers/ifs/about-file-system-filter-drivers
いずれも実用レベルで使えるようプログラムするのは、大変に難しいものです。