유니코드 문자 찾기가 안 되네요.

var hwp = GetHwpObject();
if (hwp == null)
{
    MessageBox.Show("한글 프로그램을 찾을 수 없습니다.");
    return;
}

var proc = GetValidHwpProcess();
if (proc == null)
{
    MessageBox.Show("한글 프로세스는 찾았지만, 창 핸들을 가져올 수 없습니다.");
    return;
}

ActivateHwpWindow(proc);

SendKeys.SendWait("F0854");
SendKeys.SendWait("%+{F10}");
ExecuteHwpCommands(hwp, "MoveSelLeft");
ExecuteHwpCommands(hwp, "Cut");

string ff = Clipboard.GetText();
    


/*
            // 1. 찾으려는 문자를 블록으로 선택
            ExecuteHwpCommands(hwp, "MoveSelLeft");

            // 2. 블록으로 설정된 텍스트를 변수에 저장
            string ff = hwp.GetTextFile("TEXT", "saveblock");

            // 3. 블록으로 설정된 내용을 삭제
            ExecuteHwpCommands(hwp, "Delete");

            */

//찾기 설정

var pset = hwp.HParameterSet.HFindReplace;
hwp.HAction.GetDefault("FindString", pset.HSet);
pset.FindString = ff;
pset.Direction = hwp.FindDir("Forward");
pset.FindType = 1;
pset.MatchCase = false;
pset.WholeWordOnly = false;
pset.UseWildCards = false;

//찾기
ExecuteHwpCommands(hwp, "FindString");

유니코드 문자가 일반적인 문자가 아니라서
c#에서 처리되지 않아 편법으로
이렇게 버튼 이벤트를 작성했습니다.

한글에서 유니코드 문자를 입력해서 잘라내기까지는 진행이 되는데,
찾기가 안 됩니다.
왜 그런지 고수 분들의 조언 부탁드립니다.

1개의 좋아요

안녕하세요

이 부분을 아래 코드로 변경하시면 될 것 같아요!!

var pset = hwp.HParameterSet.HFindReplace;
hwp.HAction.GetDefault("RepeatFind", pset.HSet);
pset.FindString = ff;
pset.Direction = hwp.FindDir("Forward");
pset.FindType = 1;
pset.MatchCase = false;
pset.WholeWordOnly = false;
pset.UseWildCards = false;
hwp.HAction.Execute("RepeatFind", pset.HSet);

확인하시고 추가 문의 사항 있으면 말씀해주세요~
감사합니다.

1개의 좋아요

앗! 됩니다.
너무 소중한 걸 배웠네요.
정말 감사합니다.^^

2개의 좋아요