1

私は vb6 コーダーで、Windows 7 UAC の問題に直面しています。

制限付きユーザー: インストーラーを実行すると、管理者アカウントのパスワードを要求されます。入力すると、正しくインストールされました。私のアプリは、すべてのユーザーがファイル/データにアクセスできるように、共通のアプリケーション データ フォルダーに日付を書き込みます。

Windows 7 では、パスは次のとおりです。

C:\ProgramData\<CompanyName>\<AppName/Title>\Config.ini

私のインストーラーは管理者権限で実行されるため、これらのサブフォルダーが正しく作成されます。

ただし、アプリが制限付きユーザー アカウントから実行されている場合。その場所への書き込みに失敗しました (実際には仮想パスに書き込みます)。

しかし、私はその正確なファイルに書き込みたいです。

ただし、CommonAppDataフォルダーに書き込むように指示されている場所はすべて十分に調査しました。しかし、それでも失敗します。

誰か助けてください。

API 呼び出しを使用SHGetSpecialFolderLocationしてフォルダーの場所を取得し、フォルダー ID 35 を使用します。

以下は、パスのサンプル コードです。

strAPPPath = fGetSpecialfolder(35) & "\" & App.CompanyName & "\" & Trim(App.Title)
4

2 に答える 2

0

インストーラーに問題があると示唆するつもりはありませんでした。インストーラーにどのような機能があるかを知りたかったのです。インストール後のカスタム アクションを実行していると述べたように、その中でディレクトリを作成し、アクセス許可を設定して、構成ファイルをそこにコピーします。あなたのインストーラーにはInteractive および Shell Operationsを実行する機能があるように見えますが、私はそれに慣れていないので、例を挙げようとするのは差し控えます。ディレクトリのアクセス許可を設定するために使用するコマンドは doscalcsコマンドです。そして、私が使用するコマンドラインは.

cacls "%ALLUSERSPROFILE%\**<Your Directorys here>**" /E /P BUILTIN\Users:F

私はbatファイルを失いたいので、誰かが飛び込んでこれを行う別の方法を提供してくれることを望んでいました.

于 2013-09-11T01:00:42.707 に答える
0

www.sysinternals.com (MS Technet にリダイレクト) から procmon を使用してみて、アプリケーションがデータ フォルダーにアクセスするために行っているディスク アクセスを見つけることができます。

アクセス許可など、正しい方向を示すより適切なエラー メッセージが表示されます。

于 2013-09-10T12:25:07.383 に答える