質問: お世話になります。 VB.NET(Framwork2.0) にて作成したアプリ中から、 特定のファイルへアクセスしているプロセスIDを 取得したいと思っております。(最終的にはkillしたい) ※ 特定のファイルへは、内部、外部アプリの両方からアクセスあり select * from Win32_Processで一覧を取得してみましたが 内部から読み込んでいる場合、親となるアプリそのものの プロセスは取得できたのですが、ファイル個別のプロセスが 取得できません。 Windowsのopenfilesコマンドでは、読込ファイル別に プロセスが取得できるのですが、VBから同様のレベルでの 取得はできませんでしょうか。 ※補足 VBからopenfilesを叩く方法も考えましたが、プロセスが 存在するにも関わらず、taskkill /pid xxx /f でも プロセスが見つからないエラーが発生し、解消できませんでした。 -- 環境 -- windows serve 2003, windows8.1(x64) visual studio 2008
回答: C#で恐縮ですが、以下のサイトが参考になるかと。 未確認ですが、VB.NETでも動くと思います。 ファイルを使用中のアプリをC#から調べる