Delphi 5 で書かれた非常に古いアプリケーションを、BDE を使用する一部の顧客で実行しています。現在、Windows Vista および 7 を使用している一部のユーザーは、マルチユーザー アクセスに関するいくつかの問題を実験していました。これらの問題は、net
.and.lck
ファイルの場所に関連していると思います。BDE
問題は、権限と UAC の競合を回避するために、Windows Vista および 7 でを構成する適切な方法はどれかということです。
5552 次
3 に答える
6
上記の回答に加えて、.net および .lck ファイルが Windows 7 のユーザー固有のディレクトリ、具体的には次の場所にあることを確認する必要があります。
C:\Users\{User Name}\AppData\Local\{Your Company Name}\{Your Application Name}
これらは、現在のユーザーが常に完全に制御できる唯一のフォルダーです。
このフォルダーは、次のコードを使用して取得できます。
CSIDL_LOCAL_APPDATA = $001C;
function GetAppDataDirectory: AnsiString;
var
TempBuffer: array[0..MAX_PATH] of AnsiChar;
ResultLength: Integer;
begin
FillChar(TempBuffer,((MAX_PATH+1)*SizeOf(AnsiChar)),0);
ShlObj.SHGetSpecialFolderPathA(0,@TempBuffer,CSIDL_LOCAL_APPDATA,False);
ResultLength:=StrLen(pAnsiChar(@TempBuffer));
SetLength(Result,ResultLength);
Move(TempBuffer[0],pAnsiChar(Result)^,(ResultLength*SizeOf(AnsiChar)));
end;
そして、返された値に{Your Company Name}
andを追加します。{Your Application Name}
ShlObj ユニットを含める必要があります。
于 2011-03-21T22:31:18.907 に答える
0
BDE のデフォルト インストールのセキュリティ バグを回避したくない場合 (他の回答で言及されているように、BDE インストーラーが忘れていたアクセス許可を付与する)、アプリケーションを管理者として実行するだけです。
いくつかのオプションがあります:
Run As Administrator
毎回右クリックして選択するようにユーザーに指示します。- プログラムの [互換性] タブに移動し、チェックします
Run this program as an administrator
(1 と同じ効果があります) 。 - プログラムの [互換性] タブに移動し、
Run this program in compatibility mode
forWindows XP
(2 と同じ効果があります) - マニフェストを作成し、 of
MyApp.exe.manifest
を含めます(これは 3 と同じ効果があります)requestedExecutionLevel
requireAdministrator
言い換えれば、あなたのアプリケーションは、現状では、実行するために管理者アクセスを必要とするため、管理者として実行してください。
一方、いくつかの簡単な変更を加えれば、アプリケーションを管理者として実行する必要がなくなります。あなたは世界を全人類にとってより良い場所にしました!
于 2011-07-12T18:23:41.257 に答える