2011-02-11 5 views
0

화면상의 키보드를 생성 중입니다. 나는 다음을 수행 키 (의사)를 보내려면 :단기간 비활성 상태 일 때 내 창을 깜박 거리지 않게하십시오.

SetMyWindowTopMost(true) 
SetReceiverWindowActive() 
Sleep(100) 
SendInput(keys) 
SetMyWindowActive() 
SetMyWindowTopMost(false) 

내가 짧은 시간 (~ 100 밀리 초)에 대한 다른 응용 프로그램에 포커스를 다음 초점을 되 찾는다. 그러나 나는 그것을 나타나기를 원하지 않습니다.

문제는 내 프로그램이 비활성 상태가되고 다시 활성화 될 때마다 깜박입니다. 나는 어떤 식 으로든 그것을 막을 수있어, 끊임없이 활동적인 것처럼 보입니다.

+0

비활성 상태가되면 초점이 사라지고 활성 상태가되면 다시 회복 되니? – winwaed

+0

짧은 시간 (~ 100ms) 동안 다른 응용 프로그램에 초점을 맞춘 다음 다시 초점을 맞 춥니 다. 하지만 나는 그것을 나타나기를 원하지 않는다. – magol

+0

이런 식으로 초점을 훔칠 수는 없습니다. SetForegroundWindow()에 대한 MSDN Library 문서에 설명 된대로 규칙을 읽습니다. –

답변

3

가능한 플래시 기간 동안 WM_NCACTIVATE 메시지가 처리됩니다. 메시지가 DefWindowProc에 도달하지 못하도록하거나 wParam을 'true'로 수정하십시오 (in this answer).

+0

내가 찾고있는 것. 정말 고맙습니다 – magol

관련 문제