5

ネットワーク経由でマシン上で EXE ファイル (D2006 アプリ) を実行している場合、EXE が UNC ショートカットまたはマップされたドライブ文字から呼び出された可能性がある場合、そのマシン上の commondocs フォルダーへのパス名を取得するにはどうすればよいですか?ショートカット、およびリモート マシンのプラットフォームは必ずしも既知ではありません (ただし、>= WinXP になります)?

状況は、クライアントが多数の分散したマシンを持っており、すべての PC に私のアプリをインストールすることを気にすることができない場合です。つまり、ネットワーク上のどこかに実行可能ファイルをインストールし、全員にそのショートカットを提供します。これはすでに彼らにうまく合っているようで、問題はありません。

彼らの要求に応じて、アプリが実行可能ファイルと同じフォルダーに配置された INI ファイルから設定を読み取るようにしました。INIファイルを保存できるように、すべてのユーザーがそのフォルダーに書き込むことができるように構成しているとしか思えません。

ただし、INI ファイルが読み取られ、リモート マシンの commondocs フォルダー ツリーのどこかに保存されるように変更して、Program files フォルダーへの書き込みアクセスを提供する必要がないようにしたいと考えています。

4

1 に答える 1

10

プログラムを実行しているマシンは、アクセスできる唯一のマシンです。プログラムが保存されているマシンは関係ありません。ただのディスクドライブです。Windows が実行されていない可能性があります。ほとんど何も実行していない NAS でさえあるかもしれません。

お客様がファイル サーバーの common-documents フォルダーをすべてのクライアント システム上の全員の common-documents フォルダーとして機能させたい場合は、システム管理者にサーバー上の共有フォルダーを構成してもらい、クライアントがそのリモートを使用するように構成します。フォルダーを common-documents フォルダーとして使用します。そのために特別なプログラミングは必要ありません。

プログラムが実行されているマシンの common-documents フォルダーを取得するには、ShGetFolderPath. 必要なCSIDL値は ですCSIDL_COMMON_DOCUMENTSSHGetKnownFolderPath代わりに呼び出す場合は、 を使用しますFOLDERID_PublicDocuments

于 2011-05-20T03:53:51.713 に答える