[ad_1]
私は、PC ユーザー A のディレクトリからうまく動作する、シンプルなマルチユーザー プログラムをまとめました。 しかし、同じ PC 上でユーザー B’ からユーザー D’ がプログラムを実行し、これらの日付ファイルにアクセスしようとすると、問題が発生します。 通常、結果は非常に悪いものになります。 各ユーザーに権限を設定しようとしました。 各実行前に、各ファイルのプロパティの下にあります。 しかし、ユーザー B からユーザー D のいずれかでプログラムを実行した後、以前に設定された権限は、まるで何もしていないかのように消えてしまったようです。 これはしばらく続いていますが、私にはまったく理解できません。 この PC 上のどこでプログラムを実行しても問題なく実行できるように、アクセス許可を信頼できる適切なものにするにはどうすればよいでしょうか。 言い換えれば、すべてが計画通りに進み、問題がないことを確認します。 修正案や助けがあれば、必ず役に立ちます。 それにしても、私は何を間違っているのでしょうか? ありがとう、
私が試したこと:
_fsopen()、fopen()、fsopen_s() を使用しました。 常にそれを変更し、それを叩きます。
解決策 1
パスを取得するために、Windows には次のような特別な API があります。 既知のフォルダー インターフェイス または、より最近の SHGetFolderPath。 パラメータは、パスが返す識別子として使用されます。
ただし、最初にデータの概念が必要です。 すべてのユーザーが独自のデータ、または共通のデータを持っている場合が最適です。 これにより、アクセスの問題が解決されます。 標高を使用するのは悪い考えです。
解決策 2
データ ファイルを「すべてのユーザー」のデータ フォルダーに移動することをお勧めします。Windows には、すべてのユーザーが使用できるデータ フォルダー (ProgramData) があります。
これは隠しフォルダーで、通常は C: ドライブのルートにあります (ただし、移動することもできます。ファイル エクスプローラーを開いて、アドレス バーに %PROGRAMDATA% と入力して見つけます)。 そこにアプリ用のフォルダーを作成すると、そのフォルダー内のデータ ファイルには、昇格なしですべてのユーザーが完全にアクセスできるようになります。
[ad_2]
コメント