Cómo usar C# para controlar la visualización y ocultación de los iconos del escritorio
El ícono del escritorio es en realidad una ventana ListView, como todos deberían saber, por lo que podemos encontrar esta ventana:
Luego use la función API ShowWindow para mostrarla y ocultarla.
El siguiente es el código: [DllImport("User32.dll",?EntryPoint?=?" FindWindow")]
private?lpWindowName);
[DllImport("user32. dll " ,?SetLastError?=?true)]
public?string?windowTitle);
[DllImport("user32.dll",?EntryPoint?=?" ShowWindow") ]
public?static?extern?int?ShowWindow(IntPtr?hwnd, ?int?nCmdShow);
[DllImport("user32.dll")]
public?static?extern?bool?IsWindowVisible(IntPtr?hwnd); public?const?int?SW_SHOW?=?5;
public?const?int?SW_HIDE?=?0; p>
público?Form1()
{
InitializeComponent();
}
privado?void?button1_Click( objeto? remitente,?EventArgs?e)
{
si ?(hWndDeskop! =?IntPtr.
{
si ? (! IsWindowVisible(hWndDeskop))
ShowWindow(hWndDeskop,?SW_SHOW);
else?MessageBox.Show("Ya se muestra");
}
}
privado?void?button2_Click(object?sender,?EventArgs?e)
{
if?(hWndDeskop!= ?IntPtr .Zero)
{
if?(IsWindowVisible(hWndDeskop))
ShowWindow(hWndDeskop,?SW_HIDE);
else? MessageBox.Show("Ocultar");
}
}
IntPtr?hWndDeskop?=?IntPtr.Zero;
privado ?void?Form1_Load(object?sender,?EventArgs?e)
{?
IntPtr?hWndPm?=?IntPtr.Zero;
hWndPm ?= ?FindWindow(null,?"Program?Manager");
if?(hWndPm?==?IntPtr.Zero)
MessageBox.Show("No se pudo encontrar el escritorio ." ,?Error");
else
{
IntPtr?hWndPm2?=?IntPtr.Zero;
hWndPm2? =? BuscarVentanaEx(hWndPm,?IntP
tr.Zero,?null,?"");?if(hWndPm2?==?IntPtr.Zero)
MessageBox.Show("No se pudo encontrar la ventana.",?" Error");? else
{
hWndDeskop?=?FindWindowEx(hWndPm2,?IntPtr.Zero,?null,?"FolderView");
if?(hWndDeskop? ==?IntPtr.Zero)?MessageBox.Show("No se puede encontrar la ventana." ,?" Error");?
}
}
Abajo Hay más código que he escrito