LoginSignup
0
0

More than 1 year has passed since last update.

マウスカーソルを黒くするPowershell

Last updated at Posted at 2022-05-16

マウスカーソルをCLIで黒くしたり白くしたりしたいとき(?)につかう。
※1. レジストリメキメキ弄るので注意
※2. 動作検証ちゃんとやってないので、まともに動くかどうかは環境次第です。参考程度に。

MouseCursor_black.ps1

$RegConnect = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey([Microsoft.Win32.RegistryHive]"CurrentUser","$env:COMPUTERNAME")
$RegCursors = $RegConnect.OpenSubKey("Control Panel\Cursors",$true)

#黒設定
$RegCursors.SetValue("","Windows Black")
$RegCursors.SetValue("AppStarting","%SystemRoot%\cursors\wait_r.cur")
$RegCursors.SetValue("Arrow","%SystemRoot%\cursors\arrow_r.cur")
#ContactVisualization
$RegCursors.SetValue("Crosshair","%SystemRoot%\cursors\cross_r.cur")
#GestureVisualization
$RegCursors.SetValue("Hand","")
$RegCursors.SetValue("Help","%SystemRoot%\cursors\help_r.cur")
$RegCursors.SetValue("IBeam","%SystemRoot%\cursors\beam_r.cur")
$RegCursors.SetValue("No","%SystemRoot%\cursors\no_r.cur")
$RegCursors.SetValue("NWPen","%SystemRoot%\cursors\pen_r.cur")
#Scheme Source
$RegCursors.SetValue("SizeAll","%SystemRoot%\cursors\move_r.cur")
$RegCursors.SetValue("SizeNESW","%SystemRoot%\cursors\size1_r.cur")
$RegCursors.SetValue("SizeNS","%SystemRoot%\cursors\size4_r.cur")
$RegCursors.SetValue("SizeNWSE","%SystemRoot%\cursors\size2_r.cur")
$RegCursors.SetValue("SizeWE","%SystemRoot%\cursors\size3_r.cur")
$RegCursors.SetValue("UpArrow","%SystemRoot%\cursors\up_r.cur")
$RegCursors.SetValue("Wait","%SystemRoot%\cursors\busy_r.cur")
$RegCursors.Close()
$RegConnect.Close()

function Update-UserPreferencesMask {
$Signature = @"
[DllImport("user32.dll", EntryPoint = "SystemParametersInfo")]
public static extern bool SystemParametersInfo(uint uiAction, uint uiParam, uint pvParam, uint fWinIni);

const int SPI_SETCURSORS = 0x0057;
const int SPIF_UPDATEINIFILE = 0x01;
const int SPIF_SENDCHANGE = 0x02;

public static void UpdateUserPreferencesMask() {
    SystemParametersInfo(SPI_SETCURSORS, 0, 0, SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
}
"@
    Add-Type -MemberDefinition $Signature -Name UserPreferencesMaskSPI -Namespace User32
    [User32.UserPreferencesMaskSPI]::UpdateUserPreferencesMask()
}
Update-UserPreferencesMask

MouseCursor_standard.ps1

$RegConnect = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey([Microsoft.Win32.RegistryHive]"CurrentUser","$env:COMPUTERNAME")
$RegCursors = $RegConnect.OpenSubKey("Control Panel\Cursors",$true)

#標準設定
$RegCursors.SetValue("","Windows Standard")
$RegCursors.SetValue("AppStarting","%SystemRoot%\cursors\aero_working.ani")
$RegCursors.SetValue("Arrow","%SystemRoot%\cursors\aero_arrow.cur")
#ContactVisualization
$RegCursors.SetValue("Crosshair","")
#GestureVisualization
$RegCursors.SetValue("Hand","%SystemRoot%\cursors\aero_link.cur")
$RegCursors.SetValue("Help","%SystemRoot%\cursors\aero_helpsel.cur")
$RegCursors.SetValue("IBeam","")
$RegCursors.SetValue("No","%SystemRoot%\cursors\aero_unavail.cur")
$RegCursors.SetValue("NWPen","%SystemRoot%\cursors\aero_pen.cur")
#Scheme Source
$RegCursors.SetValue("SizeAll","%SystemRoot%\cursors\aero_move.cur")
$RegCursors.SetValue("SizeNESW","%SystemRoot%\cursors\aero_nesw.cur")
$RegCursors.SetValue("SizeNS","%SystemRoot%\cursors\aero_ns.cur")
$RegCursors.SetValue("SizeNWSE","%SystemRoot%\cursors\aero_nwse.cur")
$RegCursors.SetValue("SizeWE","%SystemRoot%\cursors\aero_ew.cur")
$RegCursors.SetValue("UpArrow","%SystemRoot%\cursors\aero_up")
$RegCursors.SetValue("Wait","%SystemRoot%\cursors\aero_busy.ani")
$RegCursors.Close()
$RegConnect.Close()

function Update-UserPreferencesMask {
$Signature = @"
[DllImport("user32.dll", EntryPoint = "SystemParametersInfo")]
public static extern bool SystemParametersInfo(uint uiAction, uint uiParam, uint pvParam, uint fWinIni);

const int SPI_SETCURSORS = 0x0057;
const int SPIF_UPDATEINIFILE = 0x01;
const int SPIF_SENDCHANGE = 0x02;

public static void UpdateUserPreferencesMask() {
    SystemParametersInfo(SPI_SETCURSORS, 0, 0, SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
}
"@
    Add-Type -MemberDefinition $Signature -Name UserPreferencesMaskSPI -Namespace User32
    [User32.UserPreferencesMaskSPI]::UpdateUserPreferencesMask()
}
Update-UserPreferencesMask

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0