#define doKeyEvent(key, bUp, bExt) \
do
{ \
BYTE
vsc = MapVirtualKey(key, MAPVK_VK_TO_VSC); \
DWORD
flag = ((bExt)? KEYEVENTF_EXTENDEDKEY:0)|((bUp)? KEYEVENTF_KEYUP:0); \
keybd_event(key, vsc, flag, 0); \
Sleep(10); \
}
while
(0);
#define doKeyClick(key, bExt) \
do
\
{ \
doKeyEvent(key, 0, bExt); \
doKeyEvent(key, 1, bExt); \
}
while
(0);
DWORD
__stdcall SimKeyboSave(
LPVOID
lParam)
{
HWND
hWnd = (
HWND
)lParam;
SetForegroundWindow(hWnd);
doKeyEvent(VK_CONTROL, 0, 1);
doKeyClick(
'S'
, 0);
doKeyEvent(VK_CONTROL, 1, 1);
Sleep(5000);
doKeyEvent(VK_CONTROL, 0, 1);
doKeyClick(
'A'
, 0);
doKeyEvent(VK_CONTROL, 1, 1);
doKeyClick(VK_DELETE, 0);
doKeyClick(
'A'
, 0);
doKeyClick(
'B'
, 0);
doKeyClick(
'C'
, 0);
doKeyClick(VK_OEM_PERIOD, 0);
doKeyClick(
'T'
, 0);
doKeyClick(
'X'
, 0);
doKeyClick(
'T'
, 0);
doKeyClick(VK_RETURN, 0);
return
0;
}
void
CMainFrame::OnTest()
{
CWnd *pWnd = AfxGetMainWnd();
HANDLE
hThread = CreateThread(NULL, 0, SimKeyboSave, m_hWnd, 0, NULL);
CloseHandle(hThread);
}