C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: 開いているフォルダのプロセスIDを取得したい


(過去ログ 122 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■72874 / inTopicNo.1)  開いているフォルダのプロセスIDを取得したい
  
□投稿者/ tomo (1回)-(2014/07/30(Wed) 08:50:16)

分類:[VBScript] 

VBscriptにおいて、開いているエクスプローラのフォルダの
プロセスIDを取得する方法はないでしょうか?
OSはWindows7(32ビットおよび64bit)です。

例えば、
・C:\test1\AB123
・C:\test2\AB123
という、パスは異なるが2つの同名フォルダがエクスプローラで
それぞれ開かれていた場合、C:\test1\AB123をアクティブにしたいと
考えています。

アクティブにするためにAppActivateを利用しようと考えて
いるのですが、この場合、AppActivate(フォルダのタイトル=AB123)とすると、
上記の2つのフォルダのうち、どちらのフォルダがアクティブに
なるかが分かりません。

そのため、上記の2つのフォルダのプロセスIDをそれぞれ取得し、
AppActivate(フォルダのプロセスID)としたいと思いますが、
開いているフォルダのプロセスIDを取得する方法が分かりません。
ご教示いただけないでしょうか。

特にAppActivateにはこだわっていないので、上記のように
同名のフォルダが複数開かれていた場合に、特定のフォルダを
指定してアクティブにできれば、他の方法でも構いません。

引用返信 編集キー/
■72875 / inTopicNo.2)  Re[1]: 開いているフォルダのプロセスIDを取得したい
□投稿者/ 魔界の仮面弁士 (60回)-(2014/07/30(Wed) 09:25:54)
2014/07/30(Wed) 10:03:54 編集(投稿者)

No72874 (tomo さん) に返信
> プロセスIDを取得する方法はないでしょうか?
通常は、どちらのフォルダも同じプロセスIDとなるため、
取得しても意味が無いと思います。

とりあえず、既に開いていた場合には、
 WScript.CreateObject("Shell.Application").Explore "C:\test1\ab123"
でアクティブになります。

ただし、該当フォルダを開いていなかった場合には、新たに
開いてしまうという状態になりますので、もしもアクティブにすべき
フォルダが開かれていなかった場合は無視するようにしたければ、
ShellWindows コレクションを列挙調査するコードも加えてみてください。


> この場合、AppActivate(フォルダのタイトル=AB123)とすると、
エクスプローラーの [ツール]-[オプション] の [表示]タブ で、
 [ファイルおよびフォルダー]
 └[タイトルバーにファイルのパス名を表示する (クラシック テーマのみ)]
を on にしておきましょう。

そうすれば、タイトルが "AB123" ではなく "C:\test1\AB123" となるため、
AppActivate で制御できるようになります。(クラシックでも Aero でも)


…もっとも、「同じフォルダが複数開かれていた場合」においては、
いずれにせよ、どれがアクティブになるのか不明瞭になりますけれどね。
引用返信 編集キー/
■72876 / inTopicNo.3)  Re[1]: 開いているフォルダのプロセスIDを取得したい
□投稿者/ PANG2 (38回)-(2014/07/30(Wed) 09:41:18)
> 同名のフォルダが複数開かれていた場合に、特定のフォルダを
> 指定してアクティブにできれば、他の方法でも構いません。

Set objWShell = CreateObject("WScript.Shell")
objWShell.Run "C:\test1\AB123"


引用返信 編集キー/
■72903 / inTopicNo.4)  Re[1]: 開いているフォルダのプロセスIDを取得したい
□投稿者/ tomo (2回)-(2014/07/31(Thu) 17:28:19)
魔界の仮面弁士様、PANG2様
教えていただいた内容で解決しました。ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -