如何在Inno设置中实现MAKELPARAM for SendMessage功能?

时间:2014-03-29 14:51:33

标签: inno-setup

当设置在设置窗口中移动鼠标时,我想在安装程序中创建一个页面,这里是SendMessage文档:http://msdn.microsoft.com/en-us/library/windows/desktop/ms644950(v=vs.85).aspx 问题是我需要MAKELPARAM实现来设置x,y位置。 有人可以帮我这么做吗?

1 个答案:

答案 0 :(得分:1)

在Inno Setup Pascal Script中,根据SDK的消息参数宏可以写成:

[Code]
type
  LONG_PTR = LongInt;
  LRESULT = LONG_PTR;  
  WPARAM = UINT_PTR;
  LPARAM = LONG_PTR;

function MakeLong(A, B: Word): LongInt;
begin
  Result := A or B shl 16;
end;

function MakeWParam(L, H: Word): WPARAM;
begin
  Result := WPARAM(DWORD(MakeLong(L, H)));
end;

function MakeLParam(L, H: Word): LPARAM;
begin
  Result := LPARAM(DWORD(MakeLong(L, H)));
end;

function MakeLResult(L, H: Word): LRESULT;
begin
  Result := LRESULT(DWORD(MakeLong(L, H)));
end;

但我建议您不要使用消息发送来模拟用户的输入。我个人会使用SendInput函数来使用更可靠的方法。我在this post中做了一些基本的例子。