원격 컴퓨터에서 로컬 컴퓨터로 복사하여 붙여 넣을 수 있어야하는 프로그램이 있습니다. 내가 상관없이 내가 복사하려고 얼마나 많은 요소 0 요소로 컬렉션을 반환하지Clipboard.GetFileDropList()가 원격 데스크톱에서 빈 컬렉션을 반환하는 이유는 무엇입니까?
Clipboard.GetDropList();
를 사용할 때
내 문제이다.
나는 그것을 시도 :if (Clipboard.ContainsFileDropList())
{
foreach (string item in Clipboard.GetFileDropList())
{
File.Copy(item, path + '\\' + Path.GetFileName(item));
}
}
가 나는 또한 (BoltBait's answer를) 시도 :
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 (로컬) : 윈도우 10
- OS (원격) : 윈도우 서버 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