私はアプリケーションを開発しました。私はクライアントネットワークの1台のマシンに展開したいと思っています。 このマシンはwin7 64ビットで動作し、管理者の承認が必要です(彼らはアクティブディレクトリ、GPOなどを使用します)。これまでのところ問題ありません。 ローミングフォルダを使用していくつかのファイルを保存しています。 問題は、アプリケーションを起動すると正しい現在のユーザーのローミングフォルダパスが見つからないようですが、管理ローミングフォルダにリダイレクトされたと思います。Delphiのローミングフォルダ、レジストリへのアクセス
function GetSpecialFolderPath(folder : integer) : string;
const SHGFP_TYPE_CURRENT = 0;
var path: array [0..MAX_PATH] of char;
begin
if SUCCEEDED(SHGetFolderPath(0,folder,0,SHGFP_TYPE_CURRENT,@path[0]))
then Result := path
else
Result := '';
end;
また、私はそれを行うのが、私のアプリケーションがそれらにアクセスすることはできません、HKEY_CURRENT_USERの下のレジストリにいくつかの値を登録する必要があります。
GetSpecialFolderPathは次のように定義されてFunction GetRoamingFolderPath():String;
var
OsVersion: integer;
Path: String;
begin
OsVersion:=(TOSVersion.Major);
if OsVersion < 6 then
Path:= GetSpecialFolderPath(CSIDL_COMMON_APPDATA)
else
path:= GetSpecialFolderPath(CSIDL_APPDATA);
end;
に従うよう 私のコードです!
どのようにこの2つの問題を解決するためのアイデア。ありがとう。
エラーコードがあれば、それを確認するのは妥当ではないでしょうか? –
私は取得しています:キーが見つからず、フォルダと同じものが見つかりません – user2224150
レジストリへのアクセスのコードを提供していないので、一度に1つの質問を扱います。レジストリの問題に関する新しい質問を投稿してください。 SHGetFolderPath()が返すエラー番号は何ですか? [documentation](https://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v = vs.85).aspx)では、コードの意味について何を言いますか? Btw、 'SHGetFolderPath()'は非推奨です。あなたはVistaの前にOSをサポートする必要がありますか? –