Alright facetów, więc o to, co usiłuję osiągnąć:Organizowanie ikony pulpitu z C#
Chcę wszystkie nieuporządkowane ikony pulpitu do układają się w kierunku lewym górnym rogu pulpitu na kliknięcia przycisku.
Oto kod używam:
[DllImport("user32.dll")]
private static extern IntPtr GetDesktopWindow();
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern int SendMessage(IntPtr hWnd, uint Msg, uint wParam, int lParam);
private void button1_Click(object sender, EventArgs e)
{
IntPtr hwnd = GetDesktopWindow(); //hwnd for desktop
SendMessage(hwnd, LVM_ARRANGE, LVA_ALIGNLEFT, 0);
}
Wierzę, że istnieją liczby całkowite nieprzypisane związane z i LVA_ALIGNLEFT
, może ktoś proszę kierować mi, jakie są. Nie jestem zaznajomiony z używaniem bibliotek dll, więc wybacz mi, jeśli zadaję głupie pytanie.
Dzięki!
pomóc mi chłopaki, używam następujący kod, a jego nadal nie działa:
private void button1_Click(object sender, EventArgs e)
{
IntPtr hanle = GetHandle();
IntPtr done;
done = SendMessage(hanle, LVM_ARRANGE, LVA_ALIGNLEFT, IntPtr.Zero);
}
public IntPtr GetHandle()
{
hShellWnd = GetShellWindow();
hDefView = FindWindowEx(hShellWnd, IntPtr.Zero, "SHELLDLL_DefView", null);
folderView = FindWindowEx(hDefView, IntPtr.Zero,"SysListView32", null);
return folderView;
}
public const int LVM_FIRST = 0x1000;
public const uint LVM_ARRANGE = LVM_FIRST + 22;
//public const IntPtr LVA_SNAPTOGRID = 5;
IntPtr LVA_ALIGNLEFT = new IntPtr(0x0001);
IntPtr hShellWnd;
IntPtr hDefView;
IntPtr folderView;
[DllImport("User32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr GetDesktopWindow();
[DllImport("user32.dll")]
public static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
[DllImport("user32.dll", SetLastError = true)]
public static extern IntPtr FindWindowEx(IntPtr parentHandle, IntPtr childAfter, string className, string windowTitle);
[DllImport("user32.dll")]
static extern IntPtr GetShellWindow();
według pozycji i średnia ikona ... – user3860157
Możesz sprawdzić http://source.winehq.org/source/include/commctrl.h dla wartości symboli LVM_ * i LVA_ * (mam nadzieję, że masz podstawowe umiejętności czytania C, ponieważ e link prowadzi cię do pliku nagłówkowego. Powinieneś również móc znaleźć plik commctrl.h w zestawie SDK platformy zainstalowanym razem z VS ...) – elgonzo
Użytkownik udokumentowany interfejs: [SetCurrentFolderFlags] (http://msdn.microsoft.com/en-us/library/ windows/desktop/bb775546 (v = vs.85) .aspx). –