アクティブウィンドウのパスを取得する方法

このQ&Aのポイント
  • VB初心者がアクティブウィンドウのパスを取得する方法を探しています。
  • タイトルの取得にはGetWindowTextを使用することができますが、ドキュメントファイルのパスを取得する方法がわかりません。
  • ワードやエクセルなどのドキュメントファイルのフルパスを取得する方法を教えてください。
回答を見る
  • ベストアンサー

アクティブウィンドウ(ドキュメントファイル)のパス

VB初心者です。 VB等でアクティブウィンドウのパスを取得する方法を探しています。 タイトルであればGetWindowTextで取得で可能ですし、 アプリケーションのパスであれば、  http://sumishiro.blogspot.jp/2009/09/blog-post_30.htmlが参考になりました。  しかしドキュメントファイルのパスを取得する方法がどうしてもわかりません。 例えば、ワードでtest.docxを開いているとき、そのウィンドウハンドルからwinword.exeのフルパスでなく、test.docxのフルパスを取得する方法です。(ワード、エクセル等だけでなく画像ビューアーが画像ファイルを開いているとき、その画像ファイルのフルパスの取得) どうぞよろしくお願いいたします。

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

アプリ側で 取得するためのインターフェースが用意されていないのであれば無理かも … VB6とかでWordを対象としてやるなら dim obj as Variant set obj = GetObject(,"word.application") if not obj is nothing then   MsgBox obj.Documents(1).FullName end if といった具合で … obj が Word Documentsが Word側で用意したプロパティ FullNameが文書へのパス

gezuok1726
質問者

お礼

ありがとうございます。やってみたらできました。とりあえずofficeアプリから始めます。画像ファイルについては今後研究します。

関連するQ&A

  • Windows7でドキュメントとマイドキュメントがあるのはなぜですか。

    Windows7でドキュメントとマイドキュメントがあるのはなぜですか。 例えばWordのsample.docxをabcフォルダに保存する場合、WindowsXPの時には C:\My Documents\abc\sample.docxとしてひとつに保存できていましたが、 Windows7では同じ内容のものが、ドキュメントとマイドキュメントにそれぞれ保存されています。 マイドキュメントのsample.docxをドキュメントへ移動しましたが、マイドキュメントのフォルダに不都合が出ます。 現在もsample.docxに辿り着くのにXP時代の習慣からかMy Documents\abcから入っています。 マイドキュメントはドキュメントに統合できないでしょうか。 第一、素人目にはファイルサイズを余分に使っている気がしますが。

  • ドキュメントに保存してあるファイルが開けません

    Windows7を使っています。 ドキュメントに保存してあるファイルが 下記のような理由で開けません。どうすれば良いでしょうか。 「このファイル形式がWindowsフォトビューアーでサポートされていないか、またはWindowsフォトビューアーの最新の功臣プログラムが適用されていないため、この画像を開けません」 とでます。対処方法を教えてください。

  • Windowsでファイルのフルパスを簡単に取得する方法

    Windowsでファイルのフルパスを簡単に取得する方法 こんにちは。 Windowsでファイルのフルパスを簡単に取得する方法はありますでしょうか? たとえば、 C:\Windows\Downloaded Program Files\FP_AX_CAB_INSTALLER.exe をメールに転記(ペースト)したい場合、 (1)エクスプローラのフォルダのアドレスをコピーして、 (2)F2キーを押してファイル名を変更の状態にして、その名前をコピー という手順でやっています。 これを簡単に実現したいのですが、フリーソフトか、Windows標準の機能であれば 教えて頂けますでしょうか。 OSはWindows XPと、Windows7の両方です。 すみませんが、よろしくお願いします。

  • パスを使ってファイルを開く

    ファイルダイアログでパス取得を行った後に、 そのパスを使ってファイルをコピーということは出来るでしょうか? 行ってほしい動作としましては、 ・ファイルダイアログでパス取得 ・そのパスを使ってファイルをコピー としたいのです。 ちなみに、コピーするためのコードは Call Shell(Environ$("COMSPEC") & " /C COPY ""C:\AAA.xls"" Z:AAA.xls") といった、絶対パスによるコピーになっています。 何故、パス取得が必要かといいますと元ファイルの場所が変わることがあるからです。 どうしても分からないので方法あるようでしたら教えてください。

  • 表示されているファイルの完全パスの取得

    Windows上で、最前面に表示されているOfficeファイルの 完全パスを取得したいのですが、方法がわかりません。 GetForegroundWindowにてハンドルを取得し、 GetWindowThreadProcessId → EnumProcessModules → GetModuleFileNameExで、取得できるのは当然のことながら、 起動したOfficeアプリの完全パス(C:\Program Files~\POWERPNT.EXE等)に なってしまいます。 取得したいのは、アプリの完全パスではなく、 ファイル自体の完全パス(C:\Documents and Setting~新規ファイル.ppt等)なんですが、 どうにかして、最前面に表示されているウィンドウ(Officeアプリ)から 表示しているファイル自体の完全パスを取得する方法はないでしょうか? よろしくお願いします。 開発環境:Visual Studio2008 / C++プロジェクト

  • word viewerを持たない人が docx解読

    MS Word Viewer がダウンロードできなくなってしまったことを知らずにいました。 DOCXファイルにパスワードをかけたまま、解読ができなくなってしまいました。 古い形式の Word Viewer がダウンロードできますが もはや、それでは DOCXが開けません。 どなたか、パスワード入力が可能な Word Viewer を入手できる方法を教えて下さい。 スマホにこの文書ファイルはコピーすることが許可されていませんので、アプリによる解読は不可能なことをご理解ください。 よろしくお願いします。

  • バッチファイル 二つ上のディレクトリのパス取得

    "C:\test\sample\a.bat"を実行した時 %~dp0 で C:\test\sample\ と展開できるのですが、 この時 C:\test\ というパスを取得するにはどうすればいいでしょうか? バッチファイルから二つ上のディレクトリのパスを取得する方法を教えていただきたいです。 よろしくお願いします。

  • LinuxからWindowsファイルのフルパス設定

    WindowsのtxtファイルをLinuxのデータベースに取り込もうとしているのですが、 Windowsファイルのフルパス設定がわかりません。 えーと、見たいデータはWindowsで表現するところの C:\My Documents\test.txt だと思ってください。 Linuxなら /usr/local/bin/test.dat ですよね。 これをLinux側からWindowsを見ようとすると ディレクトリを区切る記号として「/」を使うのか、「\」を使うのかがわかりません。また、「:」の記号もどう対応するのでしょう? 初歩的な質問ですみませんがどなたか教えてください。 お願いします。

  • テキストファイルからApp.Pathを読み込む

    いつもお世話になっております。 iniファイルに記載されているApp.Pathの文字列を普通に読み込むと"App.Path"という文字列として認識され、実行ファイルのパスが取得できません。iniファイルから読み込んだApp.Pathの文字列を、通常VB上で行ったときと同じように実行ファイルのパスと認識させる何かよい手はないでしょうか コピーするファイルが、実行ファイルのパスだったりSystem32内だったりほかのフォルダだったりする可能性があるので、ソースに直書きできないので困っております。

  • 相対パスから絶対パスの取得

    相対パスを指定することにより、絶対パスを取得したいのですが・・・。 どうすればいいでしょうか? ■状況■ VB6.0 Windows2000 ひとつ上の階層に行きそこのTableフォルダ内のsample.htmlのパスを取得したい。 Dir$("..\Table\sample.html")としてみたのですができませんでした。

専門家に質問してみよう