void CTestDlg::OnButton1()     //按钮
{
        hkey=204;
VK_SENDKEY data;
memset(&data,0,sizeof(data)); data.Count = 1;
data.Keys[0].Code  = 0x24;
data.Keys[0].Press = true;
VKSendKeyEx(hkey,&data);
      
}///////////////////////////////////////////////上面的vk_sendkey定义如下:typedef struct
{
int Count;
struct
{
int Press;
int Code;
}Keys[6];
}VK_SENDKEY,*PVK_SENDKEY;

解决方案 »

  1.   


    type
      Key = record
        Press: integer;
        Code: integer;
      end;  PVK_SENDKEY = ^VK_SENDKEY;  VK_SENDKEY = record
        Count: integer;
        Keys: array [0..5] of Key;
      end;procedure CTestDlgOnButton1Click(Sender: TObject);    //按钮 
    Const
      hkey = 204;
    var
      data: VK_SENDKEY;
    begin
      //Delphi套结构可以不用申请内存,如果要可以用GetMem(@data, SizeOf(VK_SENDKEY))但要记住FreeMEM
      data.Count := 1;
      data.Keys[0].Code  := $24;
      data.Keys[0].Press := 1;
      VKSendKeyEx(hkey, data);
    end;
      

  2.   

    谢谢楼上的,这个问题我已经解决了, DELPHI中因为是调用C的代码,所以这里必须要申请一个
    内容空间,我用过几次GETMEM,都没有成功,最后我用new(data)才成功,