Невозможно получить состояние флажка / переключателя с помощью SendMessage - PullRequest
0 голосов
/ 04 октября 2018

Ситуация:

Я пытаюсь использовать стороннюю программу, использующую SendMessage из User32.dll.Мне нужно иметь возможность получить состояние флажка и переключателя.

Использование Spy ++ для просмотра сообщений, когда флажок снят, я вижу "S BM_GETCHECK" и "R BM_GETCHECK fCheck: BST_UNCHECKED"и если я отправляю команду снова с установленным флажком, она по-прежнему говорит, что BST_UNCHECKED

retVal равно 0, а Marshal.GetLastWin32Error () также возвращает 0

В идеале все, что я использую, будет совместимо с WinXP и.NET 2.0

Любая помощь будет признательна!

Соответствующий код:

using System;
using System.Runtime.InteropServices;

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

int retValB = (int)SendMessage(hWnd, 0x00F0, IntPtr.Zero, IntPtr.Zero);

hWnd - дескриптор окна для флажка / radiobox (подтверждено с помощью Spy ++), я также пробовал 0x00F2 и 0xF0F0 в качестве второго аргумента.

...