개발 환경은 MFC(Visual C++)입니다.
한글 오토메이션입니다.
자꾸 질문 올려서 죄송합니다.
저는 MDI환경에 한글 오피스를 붙여서 사용하고 있습니다.
최소화, 최대화, 닫기 버튼을 눌렀을 때, 동작은 부모 윈도우(OS윈도우)의 영향을 받는 구현인 것 같습니다. 그래서, MDI환경일 때, 처리하면 정상적으로 동작하지 않고 그 뒤부터 화면 갱신도 되지 않습니다.
아예 세개 버튼을 지울 수는 없나요?
저도 매뉴얼을 뒤져보았지만 찾지는 못 했습니다.
명령프롬프트을 관리자 권한으로 실행해서 "hwp.exe -regserver"을 했더니
한글 오피스가 빈 창으로 떴습니다. 오토메이션 재등록이 된 것이 맞나요?
저는 ocx등록인 regsvr32 hwpCtrl.ocx처럼 "등록 성공"같은 메시지를 기대했는데,
한글 오피스 창만 뜹니다.
물론 그후에도 해당 함수를 처리하면 계속 오류 메시지는 뜹니다.
네 한글 실행이 된다면 해당 한글이 오토메이션으로 등록된것입니다.
기존 2018 6000번대 버전을 쓰셨다고 글을 올린게 생각나서 재등록을 해보시라한겁니다.
기존 6천번대에는 해당 api가 없습니다.
아니면 예외 메세지를 보니 0xFFFFFFFE 위치를 읽는 동안 액새스 위반이라고 적혀있는데 0xFFFFFFFE 가 long 타입 값이 아니라 포인터 주소로 인식된게 아닐까요?
위의경우가 아니라면 저도 어떠한 이유에서 액세스 위반이 발생하는지 알수없을것 같습니다 ㅠ
안녕하세요,
디벨로퍼상으로는 어떠한 대응이 더 어려울것 같습니다ㅠ
저는 다른 언어로 테스트 해봐도 정상적으로 해당 API 호출이 가능한대요 …
개발용 pc가 아닌 일반 pc로 테스트해봐도 정상 동작하고 있습니다.
제가 자바스크립트로 테스트한 코드 아래 같이 첨부드립니다.
뭔가 안된다면 환경문제나 설치되어있는 다른 프로그램이 영향을 끼칠수도 있을것 같은데 현재로선 도움을 드릴 방법이 없을것 같습니다. 죄송합니다 ㅠ
일단 지금 당장 급하게 처리해야 하는 건은 아니지만, 조금 더 확인해주셨으면 좋겠습니다.
저희 회사에서 사양이 좋은 PC에서도 동일하게 죽는 것을 확인했고, 한글과 컴퓨터 안에서도 충분히 발견할 수 있을 것으로 판단합니다.
저희 프로그램에서만 확인하지 않았고, 독립 프로그램에서 그리고 MDI가 아닌 환경에서도 확인하였습니다.
타이틀바(제목 표시줄)이 아예 화면에 보이지 않도록 하였습니다. 그렇게 하니까 "최소화/최대화/닫기 버튼"도 누를 일이 없어집니다.
그 후에 발견한 문제인데, 그렇게 하고 나니까, 프로그램에 붙어있는 한글 오피스의 버전을 확인할 방법이 없기는 하더군요. PC에 여러 버전의 한글 오피스를 사용하는 경우에는 어떤 버전의 OLE을 사용해서 띄운 건지 알 수가 없습니다.
예전에 한글 오피스의 "제목표시줄"과 "최소화/최대화/닫기"버튼을 안 보이게 위치 조정해서 문제를 해결했다고 말씀을 드렸습니다.
하지만 한글 오피스 버전마다 "제목표시줄"의 높이가 달라서 "한글 오피스2022"를 기준으로 위치 조정을 하고 "한글 오피스2018"을 설치하면 "메뉴"부분이 가려지는 문제가 있었습니다.
"한글 오피스 이후 버전"에서 다시 "제목 표시줄"의 높이가 줄어들지 않는다는 보장을 할 수가 없으므로 "최소화/최대화/닫기"버튼을 없애는 함수(xWindow.put_WindowStyle(0xFFFFFFFE);)를 다시 확인해주셔야 할 것 같습니다.
안녕하세요,
해당 API는 내부 프로젝트를 위해 추가된 API 입니다.
정식으로 테스트되고 배포된 API가 아니기 때문에 정상 동작에 대해선 보장이 어려울것 같습니다.
제가 테스트시에서는 C++ 및 C# API에서 모두 정상적으로 동작하고 있는대요.
한글 2018 이후 버전에서 모두 테스트 해보았는데 저희 환경에서는 정상적으로 Window 인터페이스에 WindowStyle을 0xFFFFFFFE로 줄때 타이틀바 영역을 숨겨주게 됩니다.