リモートコンピュータからローカルコンピュータにコピー&ペーストできる必要があるプログラムがあります。Clipboard.GetFileDropList()がリモートデスクトップ上で空のコレクションを返すのはなぜですか?
私の問題は、私は
Clipboard.GetDropList();
を使用する場合、それは関係なく、私がコピーしようとしたどのように多くの要素、0要素を持つコレクションを返しません、です。 Iはまた、(BoltBait's answer)を試み
if (Clipboard.ContainsFileDropList())
{
foreach (string item in Clipboard.GetFileDropList())
{
File.Copy(item, path + '\\' + Path.GetFileName(item));
}
}
:
私はそれを試し
System.Collections.Specialized.StringCollection idat = null;
Exception threadEx = null;
Thread staThread = new Thread(
delegate()
{
try
{
idat = Clipboard.GetFileDropList();
}
catch (Exception ex)
{
threadEx = ex;
}
});
staThread.SetApartmentState(ApartmentState.STA);
staThread.Start();
staThread.Join();
は、両方のバージョンは、空のコレクションを返します。
問題の原因はどこですか?それを知っ:
- コピー/貼り付けをリモートからローカルに(窓経由する)が活性化される作品(コード経由)ローカル
- クリップボードの共有へのローカルから
- コピー/貼り付けを作品
- OS(ローカル) :Windowsの10
- OS(リモート):のWindows Server 2008 R2
FileContentsにアクセスしようとすると、例外が発生します(CLIPBRD_E_BAD_DATA HRESULT:0x800401D3)(GetData( "FileContents")を使用しています))。私は使用すべき別の方法がありますか? – user3399
残念ながら、これは.NETの 'Clipboard'実装ではうまくサポートされていません。 P/Invokeを使用するか、独自のアンマネージドモジュールを作成することによって、アンマネージドアプローチに切り替える必要があります。詳細については、[このトピック](https://msdn.microsoft.com/en-us/library/windows/desktop/bb776904%28v=vs.85%29.aspx#filecontents)を参照してください。 – dymanoid