実行元のパス (常にネットワーク パス) を知る必要があるアプリケーションがあります。
アプリケーションの起動元のパスに基づいて構成の一部をセットアップしますが、その構成では、リソースへの UNC パスではなく、マップされたネットワーク ドライブ パスを使用する必要があります。
私たちが見つけたのは、UAC 昇格なしでアプリケーションを起動すると、アプリケーションが起動したディレクトリを取得できることです。
GetModuleFileName(NULL, buf, sizeof(buf));
しかし、昇格して起動すると (実際にはこれを行う必要があります)、返されたバッファーは、ドライブ文字ベースのパスではなく、UNC ベースのパスを提供します。
マップされたドライブ文字のフォルダー ツリーに移動して、常に Windows エクスプローラーから起動することに注意してください。
管理者特権で実行されているプロセスからEXEのドライブ文字ベースのパスを取得する方法について、誰か提案はありますか?