C#真的没法解决用SendMessage获取checkbox状态吗
答案:2 悬赏:50 手机版
解决时间 2021-02-09 03:37
- 提问者网友:流星是天使的眼泪
- 2021-02-08 13:20
C#真的没法解决用SendMessage获取checkbox状态吗
最佳答案
- 五星知识达人网友:从此江山别
- 2021-02-08 13:52
public const UInt32 BM_GETCHECK = 0x00F0;
public const UInt32 BM_SETCHECK = 0x00F1;
public const UInt32 BM_GETSTATE = 0x00F2;
private void button4_Click(object sender, EventArgs e)
{
IntPtr hWndParent = FindWindow("WindowsForms10.Window.8.app.0.2bf8098_r16_ad1", "Form3");
IntPtr h = FindWindowEx(hWndParent, IntPtr.Zero, "WindowsForms10.BUTTON.app.0.2bf8098_r16_ad1", "checkBox1");
Message msg = Message.Create(h, BM_CLICK, new IntPtr(0), new IntPtr(0));
//点击hwnd_button句柄对应的按钮
//PostMessage(msg.HWnd, msg.Msg, msg.WParam, msg.LParam);
SendMessage(msg.HWnd, BM_SETCHECK, new IntPtr(0), null);
int i = SendMessage(msg.HWnd, BM_GETSTATE, new IntPtr(0), null);
}
一些API函数的申明我就不写了。我搜遍了所有的资料,有2个问题无解。
1.发送BM_CLICK可以选中checkbox。但是发送BM_SETCHECK就不行。
2.发送BM_GETSTATE无法获取checkbox的状态。
public const UInt32 BM_SETCHECK = 0x00F1;
public const UInt32 BM_GETSTATE = 0x00F2;
private void button4_Click(object sender, EventArgs e)
{
IntPtr hWndParent = FindWindow("WindowsForms10.Window.8.app.0.2bf8098_r16_ad1", "Form3");
IntPtr h = FindWindowEx(hWndParent, IntPtr.Zero, "WindowsForms10.BUTTON.app.0.2bf8098_r16_ad1", "checkBox1");
Message msg = Message.Create(h, BM_CLICK, new IntPtr(0), new IntPtr(0));
//点击hwnd_button句柄对应的按钮
//PostMessage(msg.HWnd, msg.Msg, msg.WParam, msg.LParam);
SendMessage(msg.HWnd, BM_SETCHECK, new IntPtr(0), null);
int i = SendMessage(msg.HWnd, BM_GETSTATE, new IntPtr(0), null);
}
一些API函数的申明我就不写了。我搜遍了所有的资料,有2个问题无解。
1.发送BM_CLICK可以选中checkbox。但是发送BM_SETCHECK就不行。
2.发送BM_GETSTATE无法获取checkbox的状态。
全部回答
- 1楼网友:woshuo
- 2021-02-08 14:22
SendMessage(child, BM_GETCHECK, 0, 0);
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯