2

を使用して、Windows 7 x64 でアプリケーションのディレクトリ パスを特定しようとしていますqApp->applicationDirPath()。Windows 7 x32 およびその他のプラットフォーム (XP 32、64) では問題なく動作します。しかし、アプリケーションが " C:\Program Files (x86)\MyApplication" から実行されると、何かが起こります。C:\Users\some_user\AppData\Local\VirtualStore\Program Files (x86)\MyApplication\" " の代わりに " " を返しますC:\Program Files (x86)\MyApplication\。どうしたの?

UAC 設定を変更しようとしましたが、失敗しました。無効。それとも、私が間違っていたのでしょうか?

何か案が?Windows 7 x64 で実際のディレクトリを特定するにはどうすればよいですか?

4

2 に答える 2

1

返されたパスは、実際にはハードディスク上の実際のパスです。Windows 7-64 で C:\ に何かをインストールすると、実際には別のフォルダーに送信され、仮想的には C: の下にのみ表示されます。これは Dos Box でテストできます。

于 2013-06-05T10:40:45.280 に答える
1

アプリケーションをインストールするときは、インストール プロセスを管理者権限で実行するか、昇格した権限を要求する必要があります。そうしないと、Program Files ディレクトリへの書き込みアクセス権がありません。

適切な権限がない場合、Program Files ディレクトリに何かを書き込もうとすると、自動的に仮想化されます。

Microsoftナレッジベースからの引用:

このアプリケーションがシステムの場所 (%programfiles% フォルダーなど) に書き込む場合、Windows Vista および Windows 7 は書き込み操作と読み取り操作をユーザーのプロファイル フォルダー (%localappdata%\VirtualStore) 内のユーザー固有の場所にリダイレクトします。デフォルトでは、この場所は C:\Users\User_name\AppData\Local\VirtualStore\Program Files\Application_name です。

コンピューターの 1 つで、インストールを行っている人が適切な権限を持っているか、UAC が無効になっていると仮定します。そのため、一方では機能しましたが、他方では機能しませんでした。

于 2013-06-05T14:48:32.447 に答える