안녕하세요. 오랜만에 커뮤니티 방문했습니다.
현재 아래와 같이 영문 키보드를 구현해 놓은 상태입니다.
이벤트로 각 버튼마다 만들고
불리언 텍스트 값을 받아 문자열 컨트롤에 쓰고 있는데
영어는 알파벳마다 한글자로 개별적으로 만들어지기 때문에 상관이 없습니다.
한글 키보드는 예를들어 '랩'이란 글자를 쓰기 위해서 ㄹㅐㅂ 각각 조합이 되어야하는데
커서가 벗어나기도 하고 아마 어렴풋이 유니코드를 이용해서 구현을 해야하는건가 라는 생각이 들긴하는데
랩뷰 내에서 어떻게 사용해야할지 모르겠습니다.
예전에 Mylabview에 한글키보드 구현 관련 예제가 있었던 것 같은데
자세히 봐둘걸 그랬습니다.
참고할 만한 포럼 공유, 예제, 조언 등
해주시면 감사드리겠습니다.
해결되었습니다! 솔루션으로 이동.
영문 가상 키보드 예제 user32.dll 라이브러리를 사용하고 있고 각각 다른 함수로 동작합니다.
https://forums.ni.com/t5/Example-Code/Using-LabVIEW-to-Simulate-Keyboard-Events/ta-p/3996210 //keybd_event()
user32.dll 의 keybd_event 쓰는 방법
https://www.youtube.com/watch?v=eY9-aW2X88s
위 내용은 전부 영어로만 입력되는데 그 영어가 한글 자음모음으로 변환하여 입력되게 수정하면 될꺼예요.
한글 코드는 검색해보면 나올껍니다.
첨부한 사진으로는 실제 키보드에서 값이 출력되게 동작시키는게 아닌 해당 버튼을 누르면 인디케이터에 그 값이 입력되도록 한거 같은데 맞나요?
위 내용들 잘 확인했습니다.
User32.dll 을 이용해서 가상으로 만들어놓은 프론트패널의 키를 누를때
키를 가져와야하는 군요.
근데 한글로 바꾸는 과정이 꽤 어려울 것 같습니다.
서치를 해봐야겠네요...
한글은 초성 중성 종성으로 나누어져있어서
프론트패널의 키를 터치(값 변경 이벤트) 가 발생할 때
ㄱ에서 커서가 벗어나기 때문에 '가' ㄱㅏ 이런식으로 얻어질텐데
현재 글씨 상태가 초성인지, 중성인지, 종성인지, 또 받침이 들어가는지 아닌지
경우의 수가 엄청 많아서 어떻게 만들어야하는지 C, C# 등 구현되어 있는 소스가 있는거 같은데
랩뷰에서는 어떻게 구현해야할지 고민좀 해봐야겠습니다.
답변 감사드립니다!
안녕하세요. 여리君님
매번 질문을 남기면 답변 남겨주시고,
항상 열심히하시는 모습에 열정 받아갑니다.
osk로 실행하는 방법은 알고 있습니다만,
사용자가 병원(의료기기 운용 소프트웨어) 의료진이다 보니
꽤나 까다롭습니다. ㅎㅎㅎ
별도의 팝업창 없이 프론트패널에 만들어놓은 가상키보드(터치스크린 기반 운용)를 이용해야할 것 같습니다.
또한 외부 기기(마우스, 키보드)는 연결해서 사용하지 않고 있기 때문에
꽤나 골치아프네요 ㅠㅠ
고민하면서 한글의 위대함(?)을 한번 더 느끼는 중입니다!
답변 감사드립니다!
user32.dll로 하면 실제로 키보드 누를 때 값이 입력되게 되서 한글은 저절로 합쳐질 꺼라고 생각했는데 포커스가 풀렸다가 되는거라 이 문제를 해결해야 하네요.
한글 합치는거는 공식이 있습니다. 초성 중성 종성 을 공식에 넣으면 합쳐진 글의 코드가 나오는게 있어요
오 맞아요.
이거 C#코드로 구현되어있는거 해석하고 있었는데
이렇게 쉽게 정리가 잘 되어있는 곳도 있었군요.
유니코드표 참고해서 공식으로 조합해가며 만들어내야하는군요..
좋은 정보 감사합니다!
저도 터치PC로 넣을 때, OSK 로 사용합니다.
키보드 마우스가 없기 때문에, USB로 파일 하나 복사하거나 문자열 복사할 때 ctrl+c ctrl+v 가 없어서
힘들기도 하구해서...그냥 OSK로 씁니다.
한글 입력문제뿐 아니라 다양한 기능도 살아나기 때문에 좋은 것 같습니다.
windows 10 64bit 에서는 LabVIEW에서 osk 가 바로 호출되지 않기 때문에, 제가 '소스' 게시판에 만들어서 올려둔 subVI 가 있으니 그냥 다운 받아서 사용하시면 됩니다.
osk는 한번 호출하신 다음에 크기 조정 + 위치 조정 해놓으시면, 다음에 호출해도 그자리에 그 크기로 호출되므로 원하시는 위치에 조금 작게 팝업되도록 하면 문제 없을거라 생각합니다.
MrKim 님 혹시 대구 KHY ?? 이신가요? 아시는 분 같아서...
ㅎㅎ 아닙니다.
KHS입니다. 답변 감사드려요!