【发布时间】:2018-07-01 14:38:22
【问题描述】:
您知道当您右键单击桌面时,有一个“排序依据”选项可让您按“名称”、“大小”、“项目类型”或“修改日期”对图标进行排序?好吧,我想找到一种方法,只需按一下按钮即可对桌面图标进行排序。
我在 stackoverflow 上看到了一个类似的问题,但它很旧,代码对我不起作用。问题的链接是:Arranging desktop icons with C#。我正在尝试在 Windows 10 中实现这一目标。
那里有一条评论说 LVM_* 和 LVA_* 值存储在 SDK 附带的 commctrl.h 文件中。由于某种原因,我找不到该文件。
这是我正在使用的:
//sort desktop
public const int LVM_ARRANGE = 4118;
public const int LVM_ALIGNLEFT = 1;
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr GetDesktopWindow();
[DllImport("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);
//end of sort desktop
private void organizeBtn_Click(object sender, EventArgs e)
{
var DesktopHandle = GetDesktopWindow();
MessageBox.Show(GetDesktopWindow().ToString());
SendMessage(GetDesktopWindow(), LVM_ARRANGE, LVM_ALIGNLEFT, 0);
}
我一直在寻找有关此主题的信息或某种方向,尤其是有关 Windows 10 的信息,但我找不到太多。请帮忙?
【问题讨论】:
标签: c# sorting icons desktop sendmessage