4

すべてのユーザーにインストールしたいVisualBasic6.0アプリケーションがあります。たとえば、コンピューターにログインするユーザーに関係なく、設定は1か所に保持されます。共通の場所を見つけるために次のコードがあります。

Const ssfCOMMONAPPDATA = &H23
Dim strAllUsersPath As String

strAllUsersPath = CreateObject("Shell.Application").NameSpace(ssfCOMMONAPPDATA).Self.Path

Windows XPでは、このパスはフォルダを指しC:\Documents and Settings\All Users\Application Data\ます。セットアップはそこに設定ファイルをコピーし、すべてが素晴らしいです。Visual Basic 6.0アプリは、いつでも変更できます。

Windows 7では、このパスはフォルダーを指しc:\ProgramDataます。管理者権限を必要とするセットアップは、そこにファイルをコピーします。ただし、Visual Basic 6.0アプリケーションが起動してファイルにアクセスすると、Windows 7は設定ファイルをC:\ Users {USER LOGIN} \ AppData \ Local \ VirtualStore \にコピーし、そこですべての操作を実行します。その結果、Windows 7はユーザーごとに設定ファイルを個別のユーザーディレクトリにコピーするため、ユーザーは異なる設定ファイルを持つことになります。

ファイルを間違った場所に保存していますか?私はそれを間違った方法でやっていますか?

4

1 に答える 1

10

これも私を噛みました。ProgramDataフォルダには共有の読み取りアクセスがあり、共有の書き込みアクセスはありません。もちろん、インストール中にフォルダのアクセス許可を変更することはできますが、それはMicrosoftの意図とは逆だと思います。いくつかの有用なリンクについては、この他の質問を参照してください

マイクロソフトがそれを行うべきだと考える方法。

于 2012-05-08T22:23:55.420 に答える