Symulacja klawiatury

0

mam następującą funkcje

void SetKEY( BOOL bState )
{
	BYTE keyState[256];

	GetKeyboardState((LPBYTE)&keyState);
	if( (bState && !(keyState[VK_SPACE  ] & 1)) ||
		(!bState && (keyState[VK_SPACE  ] & 1)) )
	{
		// Simulate a key press
		keybd_event( VK_SPACE  ,
			0x39,
			KEYEVENTF_EXTENDEDKEY | 0,
			0);
		rest(500);
		// Simulate a key release
		keybd_event( VK_SPACE  ,
			0x39,
			KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,
			0);
	}
}

Problem polega na tym, że niektóre programy nie widzą wirtualnych klawiszy...
np. na pulpicie, notatniku , przeglądarce itp... wszystko działa tak jak ma działać

jak z tym sobie poradzić?

0

a focus na oknie docelowym masz prawidlowo ustawiony? moze do programu informacja dochodzi, ale dochodzi np. do jego menu a nie do pola tkesotwego?

0

a jak to można sprawdzić?(do którego okna idzie, a do którego ma iść)
na razie robię tak
{HWND h = FindWindow("NazwaProgramu", 0);
SendMessage(h, WM_KEYDOWN,VK_F1,0);
rest(150);
SendMessage(h, WM_KEYUP,VK_F1,0);}

0

Toż się waszmość zdecyduj, czy SendMEssage używasz li czy keybd_event!

0

no próbuję tak i tak... byle żeby działało

0

mozesz zdradzic, jaki program chcesz zasypac klawiszami? programy moga korzystac z roznych zrodel sygnalow.. o ile notepad czy winword zareaguje na sendmessage, to tyle juz gra uzywajaca np directx - niekoniecznie..

0

gra używająca directx

1 użytkowników online, w tym zalogowanych: 0, gości: 1