Q&A

  • 윈도우상에서 Ctrl+V를 친것처럼 효과내는 것이 가능합니까?
델파이로 만든 프로그램에서 어떤 이벤트(예를 들어 onchange)가

발생했을때 키보드로 Ctrl과 V키를 동시에 누른 효과를 내게하려는데

어떤 방법이 있을까요?

제가 원하는 것은 델파이로 만든 프로그램 내에서 효과를 내는 것이 아니라

윈도즈 화면상에서 키보드를 CTRL+V친것처럼 효과를 내려는 것이지요

즉 델파이로 만든 프로그램 내에서 값을 전달하는 방식이 아니라

윈도우즈로 값을 전달하는 방식입니다

이른바 후킹처리를 해야할것 같은데 저는 잘 모르겠어요





3  COMMENTS
  • Profile
    김지엽 2001.02.21 22:14
    procedure TForm1.Button1Click(Sender: TObject);

    var i : word;

    begin

    i := 86;

    Form1.FormKeyDown(Form1,i,[ssCtrl]);

    end;

    // 요렇게 하면 버튼을 누르면 폼에 Ctrl+V가 입력된 것으로 처리 될겁니다.



    한데, Ctrl-V키를 누른 효과를 낸다는 건 Paste 효과를 내고 싶은거겠죠?

    그럴 때는 폼에서 Ctrl-V를 눌러봐야 소용 없습니다.. 차라리 해당 컨트롤에서

    PasteFromClipBoard를 쓰시는게 나을 겁니다.

    (예 : Richedit1.PasteFromClipBoard;)

    Ctrl-C의 경우는 CopyToClipBoard 메쏘드를 쓰시구요..



    chunhj7 wrote:

    > 델파이로 만든 프로그램에서 어떤 이벤트(예를 들어 버튼클릭)가

    > 발생했을때 키보드로 Ctrl과 V키를 동시에 누른 효과를 내게하려는데

    > 어떤 방법이 있을까요?

    >

  • Profile
    chunhj7 2001.02.21 22:31
    답변 감사드립니다

    그런데 내용을 보니 델파이로 만든 프로그램 내에서 효과를 내게하는 것같은데

    제가 원하는 것은 윈도즈 화면상에서

    키보드를 CTRL+V친것처럼 효과를 내려는 것이지요

    즉 델파이로 만든 프로그램 내에서 값을 전달하는 방식이 아니라

    윈도우즈로 값을 전달하는 방식입니다

    정말 방법이 없을까요?

    이른바 후킹처리를 해야할것 같은데 저는 잘 모르겠어요



    김지엽 wrote:

    > procedure TForm1.Button1Click(Sender: TObject);

    > var i : word;

    > begin

    > i := 86;

    > Form1.FormKeyDown(Form1,i,[ssCtrl]);

    > end;

    > // 요렇게 하면 버튼을 누르면 폼에 Ctrl+V가 입력된 것으로 처리 될겁니다.

    >

    > chunhj7 wrote:

    > > 델파이로 만든 프로그램에서 어떤 이벤트(예를 들어 버튼클릭)가

    > > 발생했을때 키보드로 Ctrl과 V키를 동시에 누른 효과를 내게하려는데

    > > 어떤 방법이 있을까요?

    > >

  • Profile
    김지엽 2001.02.21 22:25
    제가 답변을 조금 수정하는 동안에 뤼를 달아 놓으셨군요..



    한데, 이렇게 되니 애초에 질문하신 내용이 어떤 거였는지 좀 헷갈리네요?

    윈도우즈에서 Ctrl-V를 누른거와 같은 효과라는게 무슨 뜻인가요?



    만약 제가 답변 수정드렸듯이 Paste나 Copy같은 효과를 내시려는 거였다면, 해당 컨트롤의 클립보드 관련 이벤트를 발생시키면 됩니다.

    SelectAll, CrearSelection 같은 TCustomControl 계열의 프로시져들은 이런때 손쉽게 사용할 수 있도록 짜여져 있지요..