如题

解决方案 »

  1.   

    ???
    请问楼上你可不可以具体一点点啊 ???PostMessage(form1.Handle, WM_KEYDOWN, ????, 0);里面那个参数应该是什么??
      

  2.   

    这个问题很多了可以搜一下
    postmessage(handle,wm_keydown,keyvalue,0);
    sendmessage(handle,wm_keydown,keyvalue,0);
    其中keyvalue是键值,就是键盘中的按键在delphi中的对应值
    如VK_TAB 09 代表 TAB key
    sendmessage(memo1.handle,wm_keydown,VK_TAB,0)表示在memo中按下tab键
    我有部分键值表如果需要我email to you
    还可以用keybd_event,mouse_event模拟鼠标或键盘
    keybd_event($49,0,0,0);                  //十六进制49对应的字符按键按下
    keybd_event($49,0,KEYEVENTF_KEYUP,0);    //释放
    上面使用asic字符表示,没有用到delphi键值var
      apoint:tPoint;
    begin
        apoint:=clienttoscreen(point(button1.Left+3,button1.top+3));
        setcursorpos(apoint.x,apoint.y);
        mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);  //mouse leftkey down
        mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);    //mouse leftkey up
    end;
    凭记忆写的可能有bug,思路正确!
      

  3.   

    以下连条语句模拟回车
    keybd_event(VK_RETURN,0,0,0); //按下return
    keybd_event(VK_RETURN,0,2,0); //释放return
      

  4.   

    to d6f9b(patriot) ( ) :那就谢谢你了,, ^_^  [email protected]我现在做一个小程序,,原来在keydown里面好像可以用showmessage把“(”和“)”的键值显示出来,,可是现在不行了,按下shift就弹出16,,显示不出“(”了