0
초점을 맞춘 창으로 외부 창을 어떻게 시뮬레이트 할 수 있습니까? 메모장 창에 키를 보내려고하고 메모장 창에 포커스가있는 경우에만 작동하기 때문에 필요합니다. 그러나 나는 내 창문에 초점을 잃고 싶지 않다.초점을 맞출 창을 시뮬레이트하십시오.
public IntPtr Find(string taskName, string windowName)
{
return Fenster.FindWindow(taskName, windowName);
}
public void Send(IntPtr hwnd, string text)
{
if (!hwnd.Equals(IntPtr.Zero))
{
SendKeys.Send(text);
}
}
public bool SetForeground(IntPtr hwnd)
{
return SetForegroundWindow(hwnd);
}
[DllImport("user32.dll", EntryPoint = "FindWindow")]
private static extern IntPtr FindWindow(string lp1, string lp2);
[DllImport("user32.dll", ExactSpelling = true, CharSet = CharSet.Auto)]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool SetForegroundWindow(IntPtr hWnd);
감사합니다. 직접 SendMessage
또는 PostMessage
를 통해 - (응용 프로그램 및 목적에 따라 달라질 수 있습니다 WM_KEY_DOWN
및 WM_KEY_UP
또는 WM_CHAR
중 하나를)
당신은 할 수 없거나 적어도 원하지 않습니다. 메모장에 적절한 메시지를 보내고 SendKeys를 사용하지 마십시오. – CodeCaster
Sendkeys를 사용하지 않는 키를 보내는 다른 방법이 있습니까? – Thomas
이제 올바른 질문을하고 있습니다. 중복을 참조하십시오. :)'SendMessage()'를 사용하면 [윈도우의 메시지 대기열에'WM_CHAR' 메시지를 보낼 수 있습니다] (http://stackoverflow.com/questions/13514820/sendmessage-when-to-use-keydown-syskeydown-etc) 포커스가없는 창에 대해 키 누르기를 시뮬레이트합니다. – CodeCaster