HWND hnd;
hnd=FindWindowEx(0, 0, "ExploreWClass", NULL);
hnd=FindWindowEx(hnd, 0, "SHELLDLL_DefView", NULL);
hnd=FindWindowEx(hnd, 0, "Internet Explorer_Server", NULL);
hnd=FindWindowEx(hnd, 0, "ATL Shell Embedding", NULL);
hnd=FindWindowEx(hnd, 0, "SysListView32", NULL); char *pBuf;
int len=100;
int n = 3;
pBuf=new char[len];
ListView_GetItemText(hnd,n,0,pBuf,len);
delete[] pBuf;我的意识是取得windows资源管理器的第n个item的label,可是出错了.
肯定是 ListView_GetItemText用的不对.哪位朋友帮我试试,错在那里.
hnd=FindWindowEx(0, 0, "ExploreWClass", NULL);
hnd=FindWindowEx(hnd, 0, "SHELLDLL_DefView", NULL);
hnd=FindWindowEx(hnd, 0, "Internet Explorer_Server", NULL);
hnd=FindWindowEx(hnd, 0, "ATL Shell Embedding", NULL);
hnd=FindWindowEx(hnd, 0, "SysListView32", NULL); char *pBuf;
int len=100;
int n = 3;
pBuf=new char[len];
ListView_GetItemText(hnd,n,0,pBuf,len);
delete[] pBuf;我的意识是取得windows资源管理器的第n个item的label,可是出错了.
肯定是 ListView_GetItemText用的不对.哪位朋友帮我试试,错在那里.
能通过消息传出的就不需要访问其他进程的地址空间。
例如:ListView_GetSelectionMark();就发了LVM_GETSELECTIONMARK消息。
年轻人,你是高手吗?
一个32bit的值。
如果LPARAM是是个指针,它指向其他进程的地址空间,
你能能访问吗?年轻人。
ListView_GetItemText 相应的消息是LVM_GETITEMTEXT
请试试:
HWND hnd;
hnd=FindWindowEx(0, 0, "ExploreWClass", NULL);
hnd=FindWindowEx(hnd, 0, "SHELLDLL_DefView", NULL);
hnd=FindWindowEx(hnd, 0, "Internet Explorer_Server", NULL);
hnd=FindWindowEx(hnd, 0, "ATL Shell Embedding", NULL);
hnd=FindWindowEx(hnd, 0, "SysListView32", NULL); int a = ListView_GetItemCount(hnd); OK
按照以上方法取得句柄后,以下功能都能实现:
int a = ListView_GetItemCount(hnd);
// LRESULT a = SendMessage(hnd, LVM_GETITEMCOUNT, 0, 0);
UINT b = ListView_GetSelectedCount(hnd);
// LRESULT b = SendMessage(hnd, LVM_GETSELECTEDCOUNT, 0, 0);
UINT c = ListView_GetItemState(hnd,3,LVIS_CUT);
// LRESULT c = SendMessage(hnd, LVM_GETITEMSTATE, 3, LVIS_CUT);
年轻人你真不开窍!!!!!!!!!
LVM_GETITEMTEXT
lParam 是一个LVITEM指针,指向资源管理器进程的地址空间。
给分吧!
在Jeffrey 所著的《Windows 高级编程指南》中第18章有一个打开进程边界的例子,是讲如何控制桌面图标位置的,建议你看看(不过是用C写的)。简单的讲,就是在你的程序(Client端)中对Explorer挂一个MSG钩,在钩的Proc中建立一个隐藏窗口(Server端),由于钩的DLL是注入到Explorer进程中的,所以实际上这个Server是由Explorer的活动的线程建立,位于Explorer的进程空间内,可以操纵Explorer的活动。这样通过Client与Server通信,再由Server实现对Explorer的操作。
再不明白,发MAIL给我,我写个VC的源代码给U
[email protected]