我想用sendmessage wmcopydta的方式发送一个数组的内容,数组是按byte定义的,我想知道如何把这个数组的内容转化成sendmessage里的参数

解决方案 »

  1.   

    procedure TForm1.WMCOPYDATA(var Msg: TWMCOPYDATA);
    var
      vBytes: array[0..15] of Byte;
    begin
      Move(Msg.CopyDataStruct.lpData^, vBytes[0], Msg.CopyDataStruct.cbData);
      ShowMessage(Format('%d,%d', [vBytes[0], vBytes[1]]))
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      vCopyDataStruct: TCopyDataStruct;
      vBytes: array[0..15] of Byte;
    begin
      FillChar(vBytes, SizeOf(vBytes), 0);
      vBytes[0] := 9;
      vBytes[1] := 96;  vCopyDataStruct.dwData := 0;
      vCopyDataStruct.cbData := SizeOf(vBytes);
      vCopyDataStruct.lpData := @vBytes[0];  SendMessage(Handle, WM_COPYDATA, Handle, Integer(@vCopyDataStruct));
    end;