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

发布于 2024-10-12 14:51:43 字数 89 浏览 4 评论 0原文

你好, 我希望增加和减少第三方应用程序中滑块/轨迹栏的值。是否可以使用 sendMessage() 执行相同的操作。我已经拿到了滑块的手柄。有人可以帮忙吗? 谢谢。

HI,
I am looking to increase and decrease the value of a slider/trackbar in a third party application. is it possible to do the same using sendMessage(). I have got the handle of the slider. Could some one help please?
Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

凉城已无爱 2024-10-19 14:51:43

首先像这样定义 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);

First define SendMessage function like this

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

Then update slider position like this

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);

Get max and min available position using

uint TBM_GETRANGEMAX = 0x0402;
uint TBM_GETRANGEMIN = 0x0401;

IntPtr max = SendMessage(hWnd, TBM_GETRANGEMAX, 0, 0);
IntPtr min = SendMessage(hWnd, TBM_GETRANGEMIN, 0, 0);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文