자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 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 15804
공지 유용한 관련 사이트 관리자2 2014.03.20 54605
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 98047
713 FMX에서 설지경로 또는 실행경로를 아는 방법은? [2] 화이부동 2016.08.10 612
712 앱스토아에서 심사 거절 당한 이유를 해결해주세요. [2] file 화이부동 2017.11.07 612
711 키보드HOOK에 관하여.... [1] kdocs 2017.02.24 612
710 Datasnap 로 3티어 개발중에 [3] 제트콜 2016.06.16 613
709 안드로이드에서 app 실행 후 백그라운드시 이벤트는 어떻게? [1] devpro 2017.05.05 616
708 10.4 버전 DataSnap 연결 에러 질문드립니다. [4] syc 2020.06.25 618
707 윈도우10 에서 BLE 검색 [1] 서영아빠 2016.12.26 619
706 Fastreport와 QuickReport중 장기적으로 볼때 어떤게 나은가요? [3] 화이부동 2016.09.12 620
705 안녕하세요. 델파이 10.1 베를린 설치 관련하여 질문 드립니다. [5] file 이즈로즈 2016.12.08 622
704 delphi xe7으로 변경하면 롤리팝 버그가 해결되나요 [2] silkroad99 2015.04.07 622
703 DB에 이미지 등록 syc 2016.01.15 622
702 TWebBrowser 컴포넌트 관련 사항 [2] 자객 2016.03.22 622
701 규모가 큰 프로젝트에서 코드 작성 시 IDE 응답없음이 자주 발생합니다. file 험프리 2017.01.25 624
700 Cannot resolve Unit name Winapi.Windows, Winapi.Message 문제 [1] 미스터리 2019.04.11 626
699 델파이5에서 Fastreport(*.frf)개발->델파이10에서 (*.fr3)로 변형 방법? [3] 도고래 2016.04.20 626
698 [XE8 웹세미나] 비콘 센서와 연동하는 방법에 대해 자세히 알고 싶습니다. Humphery 2015.05.13 628
697 [마이그레이션][델파이5] Excel 컴포넌트[ Servers]가 없어졌어요. file 험프리 2016.06.28 629
696 [BRCC32 Error] "brcc32" exited with code 27. [3] file Dev_기어 2021.05.07 632
695 [세미나] VCL 스타일로 제공된 것을 커스터마이징 하고 싶습니다. 어떻게 할 수 있나요? [1] 관리자 2015.01.29 633
694 XE3 코드 에디터 문의 [1] cdrd 2015.02.02 634