2010-08-18 4 views
1

안녕하세요, 포커스 창 (전경 창)없이 메모장에 메시지를 입력하려고합니다.가상 키 누르기 C#

const UInt32 WM_KEYDOWN = 0x0100; 
    const int VK_F5 = 0x74; 

    [DllImport("user32.dll")] 
    static extern bool PostMessage(IntPtr hWnd, UInt32 Msg, int wParam, int lParam); 
    [STAThread] 

    private void button2_Click(object sender, EventArgs e) 
    { 
      Process[] processes = Process.GetProcessesByName("Notepad"); 

      foreach (Process proc in processes) 
       PostMessage(proc.MainWindowHandle, VK_TAB, VK_S, 0); 

    } 

을하지만이 메모장에 S를 입력하지 않습니다

이것은 내가 지금까지있는 것입니다. VK_F5를 사용하면 날짜/시간이 표시되고 도움말 창을 표시하는 VK_F1을 사용할 때 s를 입력하지 않습니다.

SendKey 사용에 대해 생각해 봤지만 메모장을 타겟팅해야합니다.

도움을 주시면 감사하겠습니다.

감사합니다.

+0

왜이 작업을 수행하는지에 대한 간단한 설명을 제공해 주시겠습니까? – SteveCav

+0

컴퓨터 게임을 위해 자동으로 나를 로그인하십시오. – Crazyd22

+0

메모장의 필요성에 대한 처리를 시도하고 있습니다. 사용자가 텍스트를 편집 할 수 있도록 만들어졌습니다. 예를 들어 텍스트를 볼 필요가없는 경우 텍스트 파일에 키를 쓴 다음 사용자가 볼 필요가있을 때 메모장을 열 수 있습니다. – SteveCav

답변

1

VK_F5를 사용할 때 날짜를 삽입하면 메시지 보내기 절차가 작동하는 것입니다.

문제는 메시지의 목적지, 당신은

당신이 키를 텍스트 영역에 기록하려는 경우

, 당신은 텍스트 영역의 핸들을 얻을 필요가, 메모장의 창 핸들에 메시지를 보내는 메모장 응용 프로그램을 제어하고 메시지를 보내십시오.

+0

아, 내가 어떻게 할 수 있는지 아십니까? 이 기사의 – Crazyd22

+0

은 실제적으로 무엇이든 처리 할 수 ​​있으며, 다이빙을 수행합니다. http://www.codeproject.com/KB/dotnet/objectspy.aspx http://www.codeproject.com /KB/threads/winspy.aspx –

+0

훌륭하고, 아프다. 고맙습니다. – Crazyd22