У меня есть хендл контрола, мне нужно получить текст, который он содержит, однако 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();
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Нужно чтоб проверка деления на ноль находилась внутри лямбда виражения !
Я писал свое приложение, придерживаясь правил хорошего тона, но потом меня осенило:
На хостинге установлен yii2-basic, установлен не в корень, а в htdocs/basic