- - PR -
[C#] アクティブウィンドウの作業ディレクトリ取得について
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2009-01-22 15:58
はじめまして。質問させて頂きます。
掲題の通り、C# でアクティブウィンドウの作業ディレクトリを 取得したいのですが、その方法がわからず困っております。 そもそも可能なのでしょうか? .NET 初心者で初歩的な質問となり恐縮ですが、 どうぞ宜しくお願いします。 | ||||||||
|
投稿日時: 2009-01-22 17:31
「アクティブウィンドウの作業ディレクトリ」とは何を指していますか? カレントディレクトリでいいなら、 Directory.GetCurrentDirectory メソッド で取得できます。 | ||||||||
|
投稿日時: 2009-01-22 17:37
よねKENさん
御返答ありがとうございます。 カレントディレクトリであれば、ご指摘の通りなのですが、 作成したアプリケーション自身ではなく、現在アクティブになっている、 アプリケーションの作業ディレクトリを取得したいと考えております。 C#で作成したアプリケーションがバックグラウンドで動作し、 アクティブなアプリケーションの作業ディレクトリを監視するようなイメージです。 不明瞭な記載でご迷惑をお掛けいたしますが、どうぞ宜しくお願いします。 | ||||||||
|
投稿日時: 2009-01-22 17:44
それで結局、「アクティブウィンドウの作業ディレクトリ」とは何を指していますか? 例えばメモ帳や電卓がアクティブになっていたとして、作業ディレクトリとして何を取得したいのですか? | ||||||||
|
投稿日時: 2009-01-22 17:57
電卓なら
C:\WINDOWS\System32 メモ帳は %HOMEDRIVE%%HOMEPATH% (プログラムメニューのアイコンのプロパティより) を取得したという意図でしょうか。 .NETは良く判っていませんが プロセス間通信で、各ウィンドウのプロセスに 問い合わせれば取得できそうな気がします。 | ||||||||
|
投稿日時: 2009-01-22 18:13
rain さん、あすかさん、ご返答どうもありがとうございます。
よねKENさんより 「カレントディレクトリでいいなら、Directory.GetCurrentDirectory メソッド」 とありました通り、どのようなアプリケーションも作業ディレクトリを持っている (何らかのディレクトリが、Directory.SetCurrentDirectory されている) と思っておりまして、それらを外部から取得するのは可能なのかな?というところが 知りたかったために、質問させて頂いております。 確かに電卓のような、ローカルディスク(ディレクトリ)に影響を与えないような アプリケーションである場合、あまり意識する必要はないかとは思いますが。。 どうぞ宜しくお願い致します。 | ||||||||
|
投稿日時: 2009-01-22 18:45
作業ディレクトリ=カレントディレクトリ という前提で話をします。
どうやら、その推測は正しいようです。 http://d.hatena.ne.jp/NyaRuRu/20070808/p1 http://d.hatena.ne.jp/NyaRuRu/20070808/p2
可能か不可能かでいえば、おそらく可能だとは思います。 どうすれば可能かは私には言えませんが、Win32 API の GetCurrentDirectory() を使うことで、もしかしたらできるかもしれません。 | ||||||||
|
投稿日時: 2009-01-22 19:01
rain さん、ご返答ありがとうございます。
用語の定義がバラついており、申し訳ありません。 以降、カレントディレクトリに統一させて頂きます。
添付頂いたURLを参照させて頂きましたが、確かに記載のアプリケーションを 見ていると、カレントディレクトリの取得もできそうですよね。。 自分でも、もう少し調べてみたいと思います。どうもありがとうございます。 |