模拟键盘输入

void CSimulateKeyDlg::OnInput()
{
 // TODO: Add your control notification handler code here
 static BOOL bChangeFlag=TRUE;
 if(bChangeFlag)
 {
  SetTimer(1,500,NULL);//设置定时器
  bChangeFlag =bChangeFlag ? FALSE:TRUE;
  GetDlgItem(IDC_INPUT)->SetWindowText("停止输入");//设置按钮文本
 }
 else
 { GetDlgItem(IDC_INPUT)->SetWindowText("模拟输入");//设置按钮文本
  KillTimer(1);//取消定时器
  bChangeFlag =bChangeFlag ? FALSE:TRUE;
 }
 
}

void CSimulateKeyDlg::OnTimer(UINT nIDEvent)
{
 // TODO: Add your message handler code here and/or call default
 static int count=0;
 BYTE keyname[11]={72,69,76,76,79,32,87,79,82,76,68};//按键序列的虚拟键码
 if(nIDEvent==1)
 { 
  m_ctlEdit.SetFocus(); //编辑框获得输入焦点
  keybd_event(keyname[count],0,0,0); //按键按下
  keybd_event(keyname[count],0,KEYEVENTF_KEYUP,0);//按键抬起
  count++;
  if(count==12)
  {
   m_ctlEdit.SetWindowText("");//情况编辑框
   UpdateData(FALSE); 
   count=0;
  }
 }
 
 CDialog::OnTimer(nIDEvent);
}

你可能感兴趣的:(模拟)