I am programming an imitation of manual work in applications for working on financial markets (Metatrader 4 and 5). I use AutoIt for this. I need to read the text of the SysListView32 elements. I wrote the following code for this purpose.
Expand|Select|Wrap|Line Numbers
- #include <WinAPI.au3>
- #include <Memory.au3>
- #include <ListViewConstants.au3>
- Local $pid= ; here i write id of needed process
- Local $hwnd= ; here i write handle of SysListView32
- Local $maxtext= ;here i write max number of chars
- 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))
Well here's the question:
How to get item text from SysListView32 from another application with both LVS_OWNERDATA and LVS_OWNERDRAWFIXED styles at the same time?
I would like to get some direction of action or example code (doesn't matter on AutoIt). Thank you.