syslistview32(syslistview32清空)

http://www.itjxue.com  2023-02-13 14:22  来源:未知  点击次数: 

怎样给syslistview32控件添加一行

ListView控件多列设置:

#include Commctrl.h

LVCOLUMN pcol;

pcol.mask = 0x01|0x02|0x04|0x08|0x10|0x20;

pcol.fmt = LVCFMT_LEFT ;

pcol.cchTextMax = 5;

pcol.cx = 70;

pcol.iImage = NULL;

pcol.iOrder = 0;

pcol.iSubItem = 0;

pcol.pszText = "时间";

ListView_InsertColumn(GetDlgItem(hwnd,IDC_LIST1),1,pcol);

pcol.pszText = "空间";

ListView_InsertColumn(GetDlgItem(hwnd,IDC_LIST1),1,pcol);

加入数据:

void WINAPI ListView_SetItemText(

HWND hwnd, //list控件句柄

int i, //第几行

Int iSubItem, //第几列

LPCSTR pszText ); //文本内容

LVITEM lvItem={0};

ListView_InsertItem(GetDlgItem(hwnd,IDC_LIST1),(LPARAM)lvItem);

ListView_InsertItem(GetDlgItem(hwnd,IDC_LIST1),(LPARAM)lvItem);

//先需要插入一行,才能对这行输入内容

ListView_SetItemText(GetDlgItem(hwnd,IDC_LIST1),0,0,"411");

ListView_SetItemText(GetDlgItem(hwnd,IDC_LIST1),0,1,"414");

ListView_SetItemText(GetDlgItem(hwnd,IDC_LIST1),1,0,"141");

ListView_SetItemText(GetDlgItem(hwnd,IDC_LIST1),1,1,"414");

用python怎么查看syslistview32的内容

from?win32con?import?PAGE_READWRITE,?MEM_COMMIT,?MEM_RESERVE,?MEM_RELEASE,\

????PROCESS_ALL_ACCESS

from?commctrl?import?LVM_GETITEMTEXT,?LVM_GETITEMCOUNT

?

import?struct

import?ctypes

import?win32api

import?win32gui

?

GetWindowThreadProcessId?=?ctypes.windll.user32.GetWindowThreadProcessId

VirtualAllocEx?=?ctypes.windll.kernel32.VirtualAllocEx

VirtualFreeEx?=?ctypes.windll.kernel32.VirtualFreeEx

OpenProcess?=?ctypes.windll.kernel32.OpenProcess

WriteProcessMemory?=?ctypes.windll.kernel32.WriteProcessMemory

ReadProcessMemory?=?ctypes.windll.kernel32.ReadProcessMemory

memcpy?=?ctypes.cdll.msvcrt.memcpy

?

?

def?readListViewItems(hwnd,?column_index=0):

?

????#?Allocate?virtual?memory?inside?target?process

????pid?=?ctypes.create_string_buffer(4)

????p_pid?=?ctypes.addressof(pid)

????GetWindowThreadProcessId(hwnd,?p_pid)?#?process?owning?the?given?hwnd

????hProcHnd?=?OpenProcess(PROCESS_ALL_ACCESS,?False,?struct.unpack("i",pid)[0])

????pLVI?=?VirtualAllocEx(hProcHnd,?0,?4096,?MEM_RESERVE|MEM_COMMIT,?PAGE_READWRITE)

????pBuffer?=?VirtualAllocEx(hProcHnd,?0,?4096,?MEM_RESERVE|MEM_COMMIT,?PAGE_READWRITE)

?

????#?Prepare?an?LVITEM?record?and?write?it?to?target?process?memory

????lvitem_str?=?struct.pack('iiiiiiiii',?*[0,0,column_index,0,0,pBuffer,4096,0,0])

????lvitem_buffer?=?ctypes.create_string_buffer(lvitem_str)

????copied?=?ctypes.create_string_buffer(4)

????p_copied?=?ctypes.addressof(copied)

????WriteProcessMemory(hProcHnd,?pLVI,?ctypes.addressof(lvitem_buffer),?ctypes.sizeof(lvitem_buffer),?p_copied)

?

????#?iterate?items?in?the?SysListView32?control

????num_items?=?win32gui.SendMessage(hwnd,?LVM_GETITEMCOUNT)

????item_texts?=?[]

????for?item_index?in?range(num_items):

????????win32gui.SendMessage(hwnd,?LVM_GETITEMTEXT,?item_index,?pLVI)

????????target_buff?=?ctypes.create_string_buffer(4096)

????????ReadProcessMemory(hProcHnd,?pBuffer,?ctypes.addressof(target_buff),?4096,?p_copied)

????????item_texts.append(target_buff.value)

?

????VirtualFreeEx(hProcHnd,?pBuffer,?0,?MEM_RELEASE)

????VirtualFreeEx(hProcHnd,?pLVI,?0,?MEM_RELEASE)

????win32api.CloseHandle(hProcHnd)

????return?item_texts

print?readListViewItems(197140)

获取syslistview32内容失败

不兼容。获取syslistview32内容失败是因为不兼容,软件不兼容指的是该软件和当前系统不兼容,不能完美运行该程序,如果强制运行可能出现未知错误;不兼容是指硬件之间。

如何获取另外程序中SysListView32组件的内容

n2=FindWindowEx(n1, 0, "SysListView32", "") '得到ListView控件的窗口句柄号。 xmn=SendMessage(n2, %LVM_GETITEMCOUNT, 0, 0) '获取ListView项目数

请教类名为SysListView32是什么控件

你好。

根据你的描述:

类名为SysListView32就是超级列表框

消息方面,MSDN讲得很详细。

如何获取外部窗体上SysListView32控件内容

在DLL命令中插入.版本2.DLL命令 取窗口标题_, 整数型, "user32", "GetWindowTextA", , 取得一个窗体的标题(caption)文字,或者一个控件的内容(在vb里使用:使用vb窗体或控件的caption或text属性) 复制到lpString的字串长度;不包括空中止字符。会设置GetLastError .参数 窗口句柄, 整数型, , 欲获取文字的那个窗口的句柄 .参数 缓冲区, 文本型, , 预定义的一个缓冲区,至少有cch+1个字符大小;随同窗口文字载入 .参数 缓冲尺寸, 整数型, , lp缓冲区的长度;

(责任编辑:IT教学网)

更多

推荐Dreamweaver教程文章