자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)

본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------

안녕하세요,  

 

동일한 소스로 테스트를 해봤습니다.  아주 간단한 소스인데..첨에 XE10 에서 안되길래

다른 방법(후킹이다 뭐다) 으로 해도 잘 안돼서.. Delphi7 으로 컴파일 해보니..잘 됩니다. ㅠㅠ

후킹으로 하는 거든, 단순한 키보드 이벤트로 하든  Delphi7 은 잘됩니다.

 

즉, [김] 을 스피드버튼으로 입력 시키면  XE10 에서는 ㄱ ㅣㅁ  이라고 나오고, Delphi7 에서는 [김] 제대로 나옵니다.

 

이거 때문에 며칠을 삽질하다가....도움 요청합니다.

 

 

 unit Unit6;

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, Buttons;

 

type

  TForm1 = class(TForm)

    Memo1: TMemo;

    SpeedButton1: TSpeedButton;

    SpeedButton2: TSpeedButton;

    SpeedButton3: TSpeedButton;

    procedure SpeedButton1Click(Sender: TObject);

    procedure SpeedButton2Click(Sender: TObject);

    procedure SpeedButton3Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

procedure SimulateKeystroke(VirtualKey: byte;  ScanCode: DWORD);

begin

  // keybd_event 함수를 사용한 키 조합(down, up) 발생

  keybd_event(VirtualKey, // 키의 down

              ScanCode,  0,  0);

  keybd_event(VirtualKey, // 키의 up

              ScanCode, KEYEVENTF_KEYUP,  0);

end;

 

procedure SimulateKeyDown(Key : byte);

begin

  // keybd_event 함수를 사용한 키 down 발생

  //keybd_event(Key, 0, 0, 0);

  keybd_event(Key,MapVirtualkey(key, 0),0, 0);

end;

 

procedure SimulateKeyUp(Key : byte);

begin

  // keybd_event 함수를 사용한 키 up 발생

  //keybd_event(Key, 0, KEYEVENTF_KEYUP, 0);

  keybd_event(Key,MapVirtualkey(Key, 0),KEYEVENTF_KEYUP,0);

end;

 

procedure TForm1.SpeedButton1Click(Sender: TObject);

begin

     SimulateKeyDown(Ord('R'));

     SimulateKeyUp(Ord('R'));

end;

 

procedure TForm1.SpeedButton2Click(Sender: TObject);

begin

     SimulateKeyDown(Ord('L'));

     SimulateKeyUp(Ord('L'));

end;

 

procedure TForm1.SpeedButton3Click(Sender: TObject);

begin

     SimulateKeyDown(Ord('A'));

     SimulateKeyUp(Ord('A'));

end;

 

end.

번호 제목 글쓴이 날짜 조회 수
공지 [프로그래밍 강의] 2021.6~2021.12 관리자 2015.01.22 19656
공지 유용한 관련 사이트 관리자2 2014.03.20 58609
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 102132
899 datasnap 서버작성후 연결문제 [1] file 다존 2014.11.25 929
898 StringGrid에 RowCount수가 건수는 447개인데 최대 190개까지밖에 안나옵니다. [3] AllwaysHappy 2017.10.26 934
897 델파이10.2에서 MariaDB10버전은 연결이 안되는 건가요 [2] 육식육식 2020.02.05 934
896 DataSnap에서 트랜잭션 처리를 어떻게 하는지 아시는분~ [4] 짧굵 2016.07.26 935
895 델파이10 시애틀 사용중입니다. [1] file 김현수 2016.04.26 941
894 임베디드 디비(IBLITE)를 사용하는 앱을 만들었습니다. 어려워 2015.02.13 943
» 스피드버튼으로 한글 입력 되도록 할 때 Delphi7 은 이상이 없는데 XE10 은 한글이 쪼개집니다. [2] 막스뮐러 2018.05.09 944
892 안녕하세요 컨트롤들을 일정하게 정렬시키려고 하는데요. [2] file Vincent 2017.09.25 946
891 [공유] 모달 창이 간혹 다른 화면 뒤로 숨는 경우가 발생합니다. 무조건 최상위로 띄울 수 있는 방법이 있나요? 험프리 2017.06.12 949
890 Windows 10 테블릿 모드에서 터치 키보드 관련문의 [2] jaheon 2017.06.14 949
889 [DB문의] Query결과 Row가 여러개일 경우 동시에 보여주는 방법 문의 [1] file 이경백 2015.07.26 952
888 가상키보드 처리 [2] 김태윤 2016.03.26 952
887 [XE6]Android 웹브라우저 오류 가을이다 2015.01.15 953
886 JSON 포맷의 데이터를 이용하고 싶습니다. [1] 험프리 2016.11.02 956
885 SQLConnection으로 DataSnap 서버 연결시 오류 [1] 미노~ 2017.06.22 956
884 Lib Path 설정방법 [1] 이영진 2017.08.13 959
883 datasnap 이용하여 모바일 개발할때 [7] 종결자 2019.11.27 959
882 프로그램 배포 시 사용하는 release 모드 설정이 안됩니다. [6] devsky 2015.06.09 961
881 TIniFile 에서 한글을 읽을때 깨집니다. [2] cate 2017.08.10 961
880 텍스트화일 입출력 문제 [2] 한시민 2016.04.11 963