これはシナリオです:
- ユーザーは、Windows 2008 Server R2 を実行しているサーバーでリモート デスクトップ セッションを開きます。
- リモート デスクトップ セッションはマップされたドライブを使用しませんが、クリップボードの共有が有効になっています。
- ユーザーがリモート デスクトップ セッションで MyApplication を起動します。
- ユーザーはクライアント マシンで Windows エクスプローラーを開き、ファイルをクリップボードにコピーします。
- MyApplication (リモート デスクトップ セッション) で、ユーザーは [ファイルの保存] ボタンをクリックします。
- MyApplication はクリップボードからファイルを取得し、サーバー上のディレクトリに保存します。
MyApplication は古い vb6 アプリケーションですが、これを .Net に実装して、com 相互運用機能を介して使用しても問題ありません。vb6 の Clipboard クラスと .Net の Systems.Windows.Forms.Clipboard クラスの両方を試しました。どちらの場合も、クリップボードにあるように見えるのは、クライアント マシンのファイル パスだけです。コードはサーバー上で実行されており、サーバーからファイルを取得する必要があるため、これは役に立ちません。
また、(リモート デスクトップを介して) サーバー上の Windows エクスプローラーにファイルを手動で貼り付けたときに、これが機能することも確認しています。クライアントで別のプログラムを実行してこれを行う方法を示す例をいくつか見つけましたが、それは私たちのオプションではありません. これは、リモート デスクトップだけで機能する必要があります。ヘルプ、コード サンプル、ドキュメントへのリンクなどをいただければ幸いです。