Windowsデスクトップをリストビューにする

Windowsマシンのデスクトップ表示をリストビューにするお話。
■ リストビューにする
下記のコードをbatファイルにして保存する。
起動する。
終わり!
スタートアップフォルダ(shell:startup)に保存しておけば、Windows起動時に自動でリストビューに切り替わる。
※Windows10で動作するのを確認済み。
WinApiをスクリプトから叩けるって恐ろしいよね。
@powershell -NoProfile -ExecutionPolicy Unrestricted "$s=[scriptblock]::create((gc \"%~f0\"|?{$_.readcount -gt 1})-join\"`n\");&$s" %*&goto:eof
Clear
$api = Add-Type -Name "Win32ApiFunctions" -PassThru -MemberDefinition @"
[DllImport("user32.dll")]
private static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
[DllImport("user32.dll")]
private static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
private static IntPtr FindDesktop()
{
IntPtr hwnd = FindWindowEx(IntPtr.Zero, IntPtr.Zero, "Progman", "Program Manager");
hwnd = FindWindowEx(hwnd, IntPtr.Zero, "SHELLDLL_DefView", null);
return FindWindowEx(hwnd, IntPtr.Zero, "SysListView32", null);
}
public static void SetViewDesktop()
{
SendMessage(FindDesktop(), 4238, 2, 0);
}
"@
$api::SetViewDesktop()

