如何使用sendmessage和c#增加第三方应用程序中的轨迹栏/滑块的值?

时间:2011-01-17 20:46:01

标签: c# winapi slider sendmessage

HI, 我希望增加和减少第三方应用程序中滑块/轨迹栏的值。是否可以使用sendMessage()来做同样的事情。我有滑块的手柄。有人可以帮忙吗? 感谢。

1 个答案:

答案 0 :(得分:3)

首先像这样定义SendMessage函数

[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);

然后像这样更新滑块位置

uint TBM_GETPOS = 0x0400;
uint TBM_SETPOS = 0x0405;

IntPtr hWnd = ...
IntPtr pos = SendMessage(hWnd, TBM_GETPOS, 0, 0);
SendMessage(hWnd, TBM_SETPOS, 1, pos.ToInt32() + 1);

使用

获取最大和最小可用位置
uint TBM_GETRANGEMAX = 0x0402;
uint TBM_GETRANGEMIN = 0x0401;

IntPtr max = SendMessage(hWnd, TBM_GETRANGEMAX, 0, 0);
IntPtr min = SendMessage(hWnd, TBM_GETRANGEMIN, 0, 0);