Hallo an alle.
Ich hab da ein Problem und finde einfach keine Lösung.
Ich möchte Daten (Text) in ein remote Listview schreiben,
das heisst, das Listview läuft in einem anderen Process und der
Handler des Listview ist bekannt.
Mit folgender Funktion kann man den Inhalt von Items und Subitem aus
einem remotlistview auslesen.
'-------------------------------------------------------------------------------
'== auslesen von gewählten items aus ListView in einem fremden process
'-------------------------------------------------------------------------------
Function ListView_GetRemoteItemText (ByVal hListView As Dword, ByVal lRow As _
Long, ByVal lColumn As Long) As String
Local dwNumberOfBytesRead As Dword
Local dwProcessId As Dword
Local hProcess As Dword
Local plvi As LV_ITEM Ptr
Local lvi As LV_ITEM
Local szLvwMultiTxt As Asciiz * %MAX_PATH
'---------------------------------------
'== Öffne handler zum remote ListView
Call GetWindowThreadProcessId(hListView, dwProcessId)
hProcess = OpenProcess(%PROCESS_VM_OPERATION Or %PROCESS_VM_READ Or _
%PROCESS_VM_WRITE, %FALSE, dwProcessId)
'== Speicher für remote Listview bereitstellen
plvi = VirtualAllocEx(hProcess, ByVal %NULL, 4096&, %MEM_RESERVE Or _
%MEM_COMMIT, %PAGE_READWRITE)
'== Initialisiere locales LV_ITEM
lvi.mask = %LVIF_TEXT
lvi.iItem = lRow
lvi.iSubItem = lColumn
lvi.pszText = plvi + SizeOf(LV_ITEM)
lvi.cchTextMax = %MAX_PATH
Call WriteProcessMemory(hProcess, ByVal plvi, lvi, SizeOf(lvi), ByVal _
%Null) '== schreibe locale LV_ITEM strukture zum remote memory block
Call ListView_GetItem(hListView, @plvi) _
'== Das Listviewcontrol mit LV_ITEM füllen
'== Lesen des Text im remote Listview
Call ReadProcessMemory(hProcess, ByVal (plvi + SizeOf(LV_ITEM)), ByVal _
VarPtr(szLvwMultiTxt), SizeOf(szLvwMultiTxt), dwNumberOfBytesRead)
Call VirtualFreeEx(hProcess, plvi, 0, %MEM_RELEASE) '== Speicher im
' remote Listview bereinigen
Call CloseHandle(hProcess)
ListView_GetRemoteItemText = Trim$(szLvwMultiTxt)
End Function Ich bäuchte jetzt 'nur' die Funktion wie ich ich Text in das remote Listview schreiben kann.
Vielleicht kann mir da einer helfen.
Vbxler |