怎么回事?

解决方案 »

  1.   

    另外,是不是你的使用方法有问题,这里有一个例子:* Uses keybd_event to manufacture a series of key events matching* the passed parameters. The events go to the control with focus.* Note that for characters key is always the upper-case version of* the character. Sending without any modifier keys will result in* a lower-case character, sending it with [ssShift] will result* in an upper-case character!// Code by P. Below************************************************************}typeTShiftKeyInfo = recordshift: Byte;vkey: Byte;end;byteset = set of 0..7;constshiftkeys: array [1..3] of TShiftKeyInfo =((shift: Ord(ssCtrl); vkey: VK_CONTROL),(shift: Ord(ssShift); vkey: VK_SHIFT),(shift: Ord(ssAlt); vkey: VK_MENU));varflag: DWORD;bShift: ByteSet absolute shift;i: Integer;beginfor i := 1 to 3 dobeginif shiftkeys[i].shift in bShift thenkeybd_event(shiftkeys[i].vkey, MapVirtualKey(shiftkeys[i].vkey, 0), 0, 0);end; { For }if specialkey thenflag := KEYEVENTF_EXTENDEDKEYelseflag := 0;keybd_event(key, MapvirtualKey(key, 0), flag, 0);flag := flag or KEYEVENTF_KEYUP;keybd_event(key, MapvirtualKey(key, 0), flag, 0);for i := 3 downto 1 dobeginif shiftkeys[i].shift in bShift thenkeybd_event(shiftkeys[i].vkey, MapVirtualKey(shiftkeys[i].vkey, 0),KEYEVENTF_KEYUP, 0);end; { For }end; { PostKeyEx32 } procedure TForm1.Button1Click(Sender: TObject);begin//Pressing the Left Windows KeyPostKeyEx32(VK_LWIN, [], False);//Pressing the letter DPostKeyEx32(Ord('D'), [], False);//Pressing Ctrl-Alt-CPostKeyEx32(Ord('C'), [ssctrl, ssAlt], False);end;  procedure TForm1.Button1Click(Sender: TObject);begin{or you can also try this simple example to send anyamount of keystrokes at the same time. }{Pressing the A Key and showing it in the Edit1.Text}Edit1.SetFocus;keybd_event(VK_SHIFT, 0, 0, 0);keybd_event(Ord('A'), 0, 0, 0);keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);{Presses the Left Window Key and starts the Run}keybd_event(VK_LWIN, 0, 0, 0);keybd_event(Ord('R'), 0, 0, 0);keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0);end;
      

  2.   

    谢谢飞龙和小太狼,
    好像keybd_event 是不行.
    我试过了,在一般的windows程序里可以,在那个游戏里面就不行了
    也许是应为它使用directx函数读写键盘的缘故