Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » получить текст SysListView32(LVS_OWNERDATA+LVS_OWNERDRAWFIXED) из других приложений

Ответить
Настройки темы
получить текст SysListView32(LVS_OWNERDATA+LVS_OWNERDRAWFIXED) из других приложений

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте. Нужно получить текст элементов из SysListView32 из нужного мне приложение с помощью AutoIt. Написал вот такой код для этой цели.
Код: Выделить весь код
#include <WinAPI.au3>
#include <Memory.au3>
#include <ListViewConstants.au3>
Local $pid=        ; тут пишу идентификатор процесса нужного приложение
Local $hwnd=      ;тут пишу  хендл SysListView32 (беру из AutoIt WIndow Info Tool)
Local $maxtext=    ; тут пишу максимальное количество символов
Local $hprocess=_WinAPI_OpenProcess($PROCESS_ALL_ACCESS,False,$pid)
Local $plv=_MemVirtualAllocEx($hprocess,Null,$maxtext+60,$MEM_COMMIT,$PAGE_READWRITE)
Local $rectext=DllStructCreate("char ["&$maxtext&"]")
Local $lv=DllStructCreate($tagLVITEM)
$lv.Mask=$LVIF_TEXT
$lv.Item=0
$lv.SubItem=0
$lv.Text=$plv+60
$lv.TextMax=$maxtext
_WinAPI_WriteProcessMemory($hprocess,$plv,DllStructGetPtr($lv),60,Null)
_SendMessageA($hwnd,$LVM_GETITEMA,0,$plv)
_WinAPI_ReadProcessMemory($hprocess,$lv.Text,DllStructGetPtr($rectext),$maxtext,Null)
_MemVirtualFreeEx($hprocess,$plv,0,$MEM_RELEASE)
ConsoleWrite(DllStructGetData($rectext,1))
Проблема в том что выше код получает текст только если SysListView32 имеет стиль или LVS_OWNERDATA или LVS_OWNERDRAWFIXED. Но этот код не получает текст
элементов SysListView32 с комбинированными стилями LVS_OWNERDATA и LVS_OWNERDRAWFIXED.
Ну вот вопрос :
Как получить текст элементов из SysListView32 из другого приложение с стилями и LVS_OWNERDATA и LVS_OWNERDRAWFIXED одновременно?

Отправлено: 14:37, 03-04-2023

 


Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » получить текст SysListView32(LVS_OWNERDATA+LVS_OWNERDRAWFIXED) из других приложений

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
portable telegram: Как получить текст из окна? irvicon AutoIt 0 12-06-2018 12:25
Получить текст из окна Атос AutoIt 1 20-09-2017 22:27
Интернет - ie9 не отрывает ссылки из других приложений k0st1an Microsoft Windows 7 2 22-11-2011 01:31
Ошибка - [решено] запуск одних приложений из под других ArPi Microsoft Windows 2000/XP 5 03-12-2010 08:21
2010 - Office | Проблема из других приложений использующих mscomctl.ocx Sanchos Microsoft Office (Word, Excel, Outlook и т.д.) 5 16-06-2010 15:22




 
Переход