Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

(시리즈 글이 3개 있습니다.)
웹: 34. Edge 브라우저도 지원하는 클립보드 복사를 위한 자바스크립트 코드
; https://www.sysnet.pe.kr/2/0/11093

.NET Framework: 841. Windows Forms/C# - 클립보드에 RTF 텍스트를 복사 및 확인하는 방법
; https://www.sysnet.pe.kr/2/0/11929

.NET Framework: 858. C#/Windows - Clipboard(Ctrl+C, Ctrl+V)가 동작하지 않는다면?
; https://www.sysnet.pe.kr/2/0/12009




Windows Forms/C# - 클립보드에 RTF 텍스트를 복사 및 확인하는 방법

다음의 글을 쓰면서,

PowerShell ISE의 스크립트를 복사 후 PPT/Word에 붙여 넣으면 한글이 깨지는 문제
; https://www.sysnet.pe.kr/2/0/11927

만들어 본 간단한 예제입니다. RTF 텍스트가 있다면 적절하게 escape 처리를 하시고,

string txt = @"{\rtf1\ansi\ansicpg949\deff0\nouicompat\deflang1033\deflangfe1042{\fonttbl{\f0\fnil\fcharset0 Malgun Gothic;}{\f1fnilfcharset129 Malgun Gothic;}{\f2\fnil\fcharset129 \'b8\'bc\'c0\'ba \'b0\'ed\'b5\'f1;}}
{\colortbl ;\red0\green0\blue0;\red0\green100\blue0;\red0\green0\blue255;}
{\*\generator Riched20 10.0.17763}\viewkind4\uc1 
\pard\cf1\f0\fs20\lang1042\par
\cf2 #\f1\'c5\'d7\'bd\'ba\'c6\'ae\'c0\'d4\'b4\'cf\'b4\'d92.\cf1\par
\par

\pard\sa200\sl276\slmult1\cf3 Get-Item\cf0\f2\lang18\par}
";

DataObject를 이용해 클립보드에 데이터를 전달할 수 있습니다.

DataObject dataObject = new DataObject();
dataObject.SetData(DataFormats.Rtf, txt);
Clipboard.SetDataObject(dataObject);

클립보드에 데이터가 잘 전달되었는지 확인하고 싶다면 다음과 같이 열람하는 코드를 만들 수 있습니다.

foreach (string txt in Clipboard.GetDataObject().GetFormats())
{
    System.Diagnostics.Trace.WriteLine(txt);

    object objValue = Clipboard.GetData(txt);
    if (objValue != null)
    {
        System.Diagnostics.Trace.WriteLine(objValue);
    }
}

참고로, 위의 코드를 잘 활용하면 현재 클립보드에 복사된 모든 유형의 데이터를 확인하는 용도로도 쓸 수 있습니다. (일례로, Microsoft Word에서 복사를 했는데 클립보드에 어떤 식으로 데이터가 전달되었는지 확인)

다음은 이 글의 소스 코드를 프로젝트 파일로 제공합니다.

DotNetSamples/WinForms/CopyRTFtoClipboard/
; https://github.com/stjeong/DotNetSamples/tree/master/WinForms/CopyRTFtoClipboard




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 6/5/2019]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 



2023-03-03 10시02분
Enumerating Windows clipboard history in C++/WinRT and C#
; https://devblogs.microsoft.com/oldnewthing/20230302-00/?p=107889

Enumerating Windows clipboard history in PowerShell
; https://devblogs.microsoft.com/oldnewthing/20230303-00/?p=107894

----------------------------

Build a ClipBoard Manager using Winforms
; https://dev.to/bigboybamo/build-a-clipboard-manager-using-winforms-37bg
정성태

... 46  47  [48]  49  50  51  52  53  54  55  56  57  58  59  60  ...
NoWriterDateCnt.TitleFile(s)
12740정성태7/29/202114656오류 유형: 747. SharePoint - InvalidOperationException 0x80131509
12739정성태7/28/202115017오류 유형: 746. Azure Active Directory - IDW10106: The 'ClientId' option must be provided.
12738정성태7/28/202115969오류 유형: 745. Azure Active Directory - Client credential flows must have a scope value with /.default suffixed to the resource identifier (application ID URI).
12737정성태7/28/202115072오류 유형: 744. Azure Active Directory - The resource principal named api://...[client_id]... was not found in the tenant
12736정성태7/28/202115365오류 유형: 743. Active Azure Directory에서 "API permissions"의 권한 설정이 "Not granted for ..."로 나오는 문제
12735정성태7/27/202115203.NET Framework: 1081. C# - Azure AD 인증을 지원하는 데스크톱 애플리케이션 예제(Windows Forms) [2]파일 다운로드1
12734정성태7/26/202132021스크립트: 20. 특정 단어로 시작하거나/끝나는 문자열을 포함/제외하는 정규 표현식 - Look-around
12733정성태7/23/202119940.NET Framework: 1081. Self-Contained/SingleFile 유형의 .NET Core/5+ 실행 파일을 임베딩한다면? [1]파일 다운로드2
12732정성태7/23/202113355오류 유형: 742. SharePoint - The super user account utilized by the cache is not configured.
12731정성태7/23/202115388개발 환경 구성: 584. Add Internal URLs 화면에서 "Save" 버튼이 비활성화 된 경우
12730정성태7/23/202116852개발 환경 구성: 583. Visual Studio Code - Go 코드에서 입력을 받는 경우
12729정성태7/22/202115300.NET Framework: 1080. xUnit 단위 테스트에 메서드/클래스 수준의 문맥 제공 - Fixture
12728정성태7/22/202115333.NET Framework: 1079. MSTestv2 단위 테스트에 메서드/클래스/어셈블리 수준의 문맥 제공
12727정성태7/21/202116511.NET Framework: 1078. C# 단위 테스트 - MSTestv2/NUnit의 Assert.Inconclusive 사용법(?) [1]
12726정성태7/21/202116282VS.NET IDE: 169. 비주얼 스튜디오 - 단위 테스트 선택 시 MSTestv2 외의 xUnit, NUnit 사용법 [1]
12725정성태7/21/202114765오류 유형: 741. Failed to find the "go" binary in either GOROOT() or PATH
12724정성태7/21/202117702개발 환경 구성: 582. 윈도우 환경에서 Visual Studio Code + Go (Zip) 개발 환경 [1]
12723정성태7/21/202114534오류 유형: 740. SharePoint - Alternate access mappings have not been configured 경고
12722정성태7/20/202114307오류 유형: 739. MSVCR110.dll이 없어 exe 실행이 안 되는 경우
12721정성태7/20/202115483오류 유형: 738. The trust relationship between this workstation and the primary domain failed. - 세 번째 이야기
12720정성태7/19/202114760Linux: 43. .NET Core/5+ 응용 프로그램의 Ubuntu (Debian) 패키지 준비
12719정성태7/19/202113930오류 유형: 737. SharePoint 설치 시 "0x800710D8 The object identifier does not represent a valid object." 오류 발생
12718정성태7/19/202113934개발 환경 구성: 581. Windows에서 WSL로 파일 복사 시 root 소유권으로 적용되는 문제파일 다운로드1
12717정성태7/18/202114127Windows: 195. robocopy에서 파일의 ADS(Alternate Data Stream) 정보 복사를 제외하는 방법
12716정성태7/17/202115263개발 환경 구성: 580. msbuild의 Exec Task에 robocopy를 사용하는 방법파일 다운로드1
12715정성태7/17/202122445오류 유형: 736. Windows - MySQL zip 파일 버전의 "mysqld --skip-grant-tables" 실행 시 비정상 종료 [1]
... 46  47  [48]  49  50  51  52  53  54  55  56  57  58  59  60  ...