c#.NET 怎样通过调用win32 api 获取 vb 程序 窗口上 VSFLEXGRID 里面的数据

luheng1090 2010-11-02 10:15:05
下面这是从网上复制过来的 获取其他程序 listview 里面的数据 。。。。但是没有说明。。我没看懂

希望高手帮忙讲解 或者 告诉告诉 我怎么样 获取vb程序里 vsflexgrid控件里的数据 (已知控件 句柄)
会的+QQ78116846 或者 帮忙写个 已知控件句柄获取vsflexgrid 的类也OK 先谢谢 了 不知道有没有人能帮了我
const uint LVM_FIRST = 0x1000;
const uint HDM_FIRST = 0x1200;
const uint LVM_GETITEMCOUNT = LVM_FIRST + 4;
const uint LVM_GETITEMW = LVM_FIRST + 75;
const uint LVM_GETHEADER = LVM_FIRST + 31;
const uint HDM_GETITEMCOUNT = HDM_FIRST + 0;

[DllImport("user32.DLL")]
static extern int SendMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);
[DllImport("user32.DLL")]
static extern IntPtr FindWindow(string lpszClass, string lpszWindow);
[DllImport("user32.DLL")]
static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
[DllImport("user32.dll")]
static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint dwProcessId);

const uint PROCESS_VM_OPERATION = 0x0008;
const uint PROCESS_VM_READ = 0x0010;
const uint PROCESS_VM_WRITE = 0x0020;

[DllImport("kernel32.dll")]
static extern IntPtr OpenProcess(uint dwDesiredAccess, bool bInheritHandle, uint dwProcessId);
const uint MEM_COMMIT = 0x1000;
const uint MEM_RELEASE = 0x8000;

const uint MEM_RESERVE = 0x2000;
const uint PAGE_READWRITE = 4;

[DllImport("kernel32.dll")]
static extern IntPtr VirtualAllocEx(IntPtr hProcess, IntPtr lpAddress, uint dwSize, uint flAllocationType, uint flProtect);

[DllImport("kernel32.dll")]
static extern bool VirtualFreeEx(IntPtr hProcess, IntPtr lpAddress, uint dwSize, uint dwFreeType);

[DllImport("kernel32.dll")]
static extern bool CloseHandle(IntPtr handle);

[DllImport("kernel32.dll")]
static extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, IntPtr lpBuffer, int nSize, ref uint vNumberOfBytesRead);

[DllImport("kernel32.dll")]
static extern bool ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, IntPtr lpBuffer, int nSize, ref uint vNumberOfBytesRead);

public struct LVITEM
{
public int mask;
public int iItem;
public int iSubItem;
public int state;
public int stateMask;
public IntPtr pszText;
public int cchTextMax;
public int iImage;
public IntPtr lParam;
public int iIndent;
public int iGroupId;
public int cColumns;
public IntPtr puColumns;
}

int LVIF_TEXT = 0x0001;几个操作LISTVIEW的自定义函数

/// <summary>
/// 获取 ListView 的行数
/// </summary>
/// <param name="hwnd"></param>
/// <returns></returns>
int ListView_GetItemCount(IntPtr hwnd)
{
return SendMessage(hwnd, LVM_GETITEMCOUNT, 0, 0);
}

/// <summary>
/// 获取 ListView 的标题栏句柄
/// </summary>
/// <param name="hwnd"></param>
/// <returns></returns>
private IntPtr ListView_GetHeader(IntPtr hwnd)
{
return (IntPtr)SendMessage(hwnd, LVM_GETHEADER, 0, 0);
}

/// <summary>
/// 获取 ListView 的标题栏的列数
/// </summary>
/// <param name="header"></param>
/// <returns></returns>
private int Header_GetItemCount(IntPtr header)
{
return SendMessage(header, HDM_GETITEMCOUNT, 0, 0);
}

/// <summary>
/// 获取 ListView 的列数
/// </summary>
/// <param name="listViewHandle"></param>
/// <returns></returns>
int ListViewColumnCount(IntPtr listViewHandle)
{
return Header_GetItemCount(ListView_GetHeader(listViewHandle));
}

完整代码下载(解压密码为本站网址)www.zu14.cn
...全文
169 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
luheng1090 2010-11-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zenghd 的回复:]
比较难,因为listview是标准的控件,可以使用API来获取,vsflexgrid 不是标准控件,上面的代码可能取不到
试试取内存分析吧
[/Quote]
兄弟 能留下QQ吗 请教请教 或者+我78116846
ZengHD 2010-11-02
  • 打赏
  • 举报
回复
比较难,因为listview是标准的控件,可以使用API来获取,vsflexgrid 不是标准控件,上面的代码可能取不到
试试取内存分析吧
内容概要:本文围绕“新型电力系统下多分布式电源接入配电网承载力评估方法”的研究,系统性地介绍了基于Matlab的仿真建模与代码实现方案,旨在评估高比例分布式电源(如光伏、风电等)接入背景下配电网的接纳能力。研究融合了智能优化算法(如蜣螂优化、灰狼优化、遗传算法)、多目标优化、鲁棒优化及双层优化模型,结合潮流计算、稳定性分析与故障仿真,构建了完整的承载力评估体系。文档不仅提供核心算法实现,还拓展至微电网调度、储能配置、电氢耦合系统、电动汽车协同等前沿方向,强调“复现+创新”相结合的科研路径,助力研究者快速掌握高水平论文复现技巧并激发原创思路。; 适合人群:具备电力系统、自动化或相关专业背景,熟悉Matlab/Simulink仿真环境,正在从事科研或工程应用的研究生及初级科研人员(工作1-3年);; 使用场景及目标:①复现高水平期刊中关于配电网承载力的优化模型;②开展高比例可再生能源接入下的配电网规划与运行研究;③学习并应用智能优化算法解决复杂电力系统问题;④获取完整科研资源包以加速课题进展与论文撰写; 阅读建议:建议读者关注公众号“荔枝科研社”获取网盘资源,下载全套代码与模型文件,按照文档结构循序渐进学习,重点理解算法设计逻辑与仿真建模细节,结合所提供的复现案例深化对优化模型与工程应用场景的理解,提升科研效率与创新能力。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧