Как получить текст контрола по хендлу

250
13 февраля 2017, 13:14

У меня есть хендл контрола, мне нужно получить текст, который он содержит, однако WM_GETTEXT возвращает пустую строку, я предполагаю, что в приложении, с которого я хочу считать данные есть защита, есть какие либо другие способы получения данных, который содержит этот контрол. Может считать из памяти этот объект и найти в нем строку или еще как. Подскажите как это можно реализовать на C# или C++.

P.S. делать скриншот контрола и распознавать на нем текст не выход, необходима быстрая реализация, так чтобы практически в реальном времени можно было считывать из него данные.

код для отправки WM_GETTEXT

[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
    public static extern int RegisterWindowMessage(string lpString);
    [DllImport("user32.dll", EntryPoint = "SendMessage", CharSet = CharSet.Auto)] //
    public static extern bool SendMessage(IntPtr hWnd, uint Msg, int wParam, StringBuilder lParam);
    [DllImport("user32.dll", SetLastError = true)]
    public static extern IntPtr SendMessage(int hWnd, int Msg, int wparam,
  int lparam);
    const int WM_GETTEXT = 0x000D;
    const int WM_GETTEXTLENGTH = 0x000E;
    public void RegisterControlforMessages()
    {
        RegisterWindowMessage("WM_GETTEXT");
    }
    public string GetControlText(IntPtr hWnd)
    {
        StringBuilder title = new StringBuilder();
        Int32 size = SendMessage((int)hWnd, WM_GETTEXTLENGTH, 0, 0).ToInt32();
        if (size > 0)
        {
            title = new StringBuilder(size + 1);
            SendMessage(hWnd, (int)WM_GETTEXT, title.Capacity, title);
        }
        return title.ToString();
    }
READ ALSO
Как сделать проверку аргумента в лямбда выражении?

Как сделать проверку аргумента в лямбда выражении?

Нужно чтоб проверка деления на ноль находилась внутри лямбда виражения !

253
Как сделать свой код непонятным для других? [требует правки]

Как сделать свой код непонятным для других? [требует правки]

Я писал свое приложение, придерживаясь правил хорошего тона, но потом меня осенило:

288
Убрать “web” из адреса в Yii2

Убрать “web” из адреса в Yii2

На хостинге установлен yii2-basic, установлен не в корень, а в htdocs/basic

394
Подключение Siebar-a в Wordpress

Подключение Siebar-a в Wordpress

Доброго времени суток, уважаемые гуру кодинга

386