我整晚都在和这个作斗争。我只是不知道有什么问题。我正在尝试获取桌面图标+标题大小。我有一些函数可以找到桌面句柄并将其放入名为 SysListView32_hwnd 的变量中。我已经用 Windows 间谍程序验证了它是正确的。这是我遇到问题的部分。
Rectangle rct = new Rectangle();
IntPtr pRct = Marshal.AllocHGlobal(Marshal.SizeOf(rct));
Marshal.StructureToPtr(rct, pRct, true);
SendMessage(SysListView32_hwnd, LVM_GETITEMRECT, (IntPtr)0, pRct);
Rectangle Rect = (Rectangle)Marshal.PtrToStructure(pRct, typeof(Rectangle));
Marshal.FreeHGlobal(pRct);
Debug.WriteLine(Rect.Height + " " + Rect.Width);
每次都会让资源管理器崩溃。C# Visual Studio 2010 Windows 7 x64,我正在编译为 64 位程序
如果需要,这是我的完整应用程序