2016-04-19 8 views
1

実行中のプロセスを列挙し、各プロセスに対して、QueryFullProcessImageNameWを使用してプロセスのディスク上のパスを取得しています。QueryFullProcessImageNameWを強制的にフルフォームにする方法はありますか?

QueryFullProcessImageNameWはほとんどのプロセスで"C:\Program Files (x86)\ALongFolderName\foobar.exe"のようなパスを返します。

しかし、私はファイルエクスプローラでそれを見ることができるよう"C:\PROGRA~2\ALONGF~1\foobar.exe'"

がどのように私はいつも、長い形式を取得することができますようにいくつかのプロセスのために、私は、代わりに古い8.3形式を取得しますか?

+3

GetLongPathName()? –

+0

@AlexK。実行時に私はQueryFullProcessImageNameWが短い名前か長い名前を返したかどうかわかりません。いずれかをGetLongPathNameに渡すことは安全ですか? –

+0

@SteveMcLeodドキュメントは、名前が短い名前でなければならないとは言いません。だから私はそれを試してみましょう。ところで、 'GetShortPathName'は明示的に' GetLongPathName'を意味する短いパス名を渡すことができます。 –

答えて

2

APIに長い形式を強制的に返すことはできません。最初に対応するイメージを読み込むために使用されたパスを返します。

代わりに、GetLongPathName()を呼び出して、8.3名をその長い形式に変換することができます。

関連する問題