如何在整个windows操作系统中更改光标(图像)
本文关键字:光标 图像 操作系统 windows | 更新日期: 2023-09-27 18:00:33
我需要在所有窗口中更改光标,而不仅仅是在应用程序中,我已经尝试过了:
this.Cursor = Cursors.WaitCursor;
这个:
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;
但它只会更改我的应用程序中的光标。
知道吗?
假设你有自己的游标文件(.cur)要应用,你可以破解它。
首先,您必须更改注册表中的默认箭头光标,然后您需要调用一些p-Invoke,以允许操作系统更新当前系统参数,从而使光标实际发生更改。
类似
private void ChangeCursor(string curFile)
{
Registry.SetValue(@"HKEY_CURRENT_USER'Control Panel'Cursors'", "Arrow", curFile);
SystemParametersInfo(SPI_SETCURSORS, 0, null, SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
}
const int SPI_SETCURSORS = 0x0057;
const int SPIF_UPDATEINIFILE = 0x01;
const int SPIF_SENDCHANGE = 0x02;
[DllImport("user32.dll", EntryPoint = "SystemParametersInfo")]
public static extern bool SystemParametersInfo(uint uiAction, uint uiParam, uint? pvParam, uint fWinIni);
用法:
ChangeCursor(@"C:'MyCursor.cur");
如果不修改注册表,就无法更改整个操作系统的光标
您需要修改注册表来更改光标。
请参阅此处以获取教程以及需要以编程方式修改的确切Registry
键。
http://www.thebitguru.com/articles/14-Programmatically+更改+窗口+鼠标+光标
[DllImport("user32.dll", EntryPoint = "SystemParametersInfo")]
public static extern bool SystemParametersInfo(uint uiAction, uint uiParam, ref uint pvParam, uint fWinIni);
public enum SystemParametersInfoAction : uint
{
SPI_GETBEEP = 0x0001,
SPI_SETBEEP = 0x0002,
SPI_GETMOUSE = 0x0003,
SPI_SETMOUSE = 0x0004,
SPI_GETBORDER = 0x0005,
SPI_SETBORDER = 0x0006,
SPI_GETKEYBOARDSPEED = 0x000A,
SPI_SETKEYBOARDSPEED = 0x000B,
SPI_LANGDRIVER = 0x000C,
SPI_ICONHORIZONTALSPACING = 0x000D,
SPI_GETSCREENSAVETIMEOUT = 0x000E,
SPI_SETSCREENSAVETIMEOUT = 0x000F,
SPI_GETSCREENSAVEACTIVE = 0x0010,
SPI_SETSCREENSAVEACTIVE = 0x0011,
SPI_GETGRIDGRANULARITY = 0x0012,
SPI_SETGRIDGRANULARITY = 0x0013,
SPI_SETDESKWALLPAPER = 0x0014,
SPI_SETDESKPATTERN = 0x0015,
SPI_GETKEYBOARDDELAY = 0x0016,
SPI_SETKEYBOARDDELAY = 0x0017,
SPI_ICONVERTICALSPACING = 0x0018,
SPI_GETICONTITLEWRAP = 0x0019,
SPI_SETICONTITLEWRAP = 0x001A,
SPI_GETMENUDROPALIGNMENT = 0x001B,
SPI_SETMENUDROPALIGNMENT = 0x001C,
SPI_SETDOUBLECLKWIDTH = 0x001D,
SPI_SETDOUBLECLKHEIGHT = 0x001E,
SPI_GETICONTITLELOGFONT = 0x001F,
SPI_SETDOUBLECLICKTIME = 0x0020,
SPI_SETMOUSEBUTTONSWAP = 0x0021,
SPI_SETICONTITLELOGFONT = 0x0022,
SPI_GETFASTTASKSWITCH = 0x0023,
SPI_SETFASTTASKSWITCH = 0x0024,
SPI_SETDRAGFULLWINDOWS = 0x0025,
SPI_GETDRAGFULLWINDOWS = 0x0026,
SPI_GETNONCLIENTMETRICS = 0x0029,
SPI_SETNONCLIENTMETRICS = 0x002A,
SPI_GETMINIMIZEDMETRICS = 0x002B,
SPI_SETMINIMIZEDMETRICS = 0x002C,
SPI_GETICONMETRICS = 0x002D,
SPI_SETICONMETRICS = 0x002E,
SPI_SETWORKAREA = 0x002F,
SPI_GETWORKAREA = 0x0030,
SPI_SETPENWINDOWS = 0x0031,
SPI_GETHIGHCONTRAST = 0x0042,
SPI_SETHIGHCONTRAST = 0x0043,
SPI_GETKEYBOARDPREF = 0x0044,
SPI_SETKEYBOARDPREF = 0x0045,
SPI_GETSCREENREADER = 0x0046,
SPI_SETSCREENREADER = 0x0047,
SPI_GETANIMATION = 0x0048,
SPI_SETANIMATION = 0x0049,
SPI_GETFONTSMOOTHING = 0x004A,
SPI_SETFONTSMOOTHING = 0x004B,
SPI_SETDRAGWIDTH = 0x004C,
SPI_SETDRAGHEIGHT = 0x004D,
SPI_SETHANDHELD = 0x004E,
SPI_GETLOWPOWERTIMEOUT = 0x004F,
SPI_GETPOWEROFFTIMEOUT = 0x0050,
SPI_SETLOWPOWERTIMEOUT = 0x0051,
SPI_SETPOWEROFFTIMEOUT = 0x0052,
SPI_GETLOWPOWERACTIVE = 0x0053,
SPI_GETPOWEROFFACTIVE = 0x0054,
SPI_SETLOWPOWERACTIVE = 0x0055,
SPI_SETPOWEROFFACTIVE = 0x0056,
SPI_SETCURSORS = 0x0057,
SPI_SETICONS = 0x0058,
SPI_GETDEFAULTINPUTLANG = 0x0059,
SPI_SETDEFAULTINPUTLANG = 0x005A,
SPI_SETLANGTOGGLE = 0x005B,
SPI_GETWINDOWSEXTENSION = 0x005C,
SPI_SETMOUSETRAILS = 0x005D,
SPI_GETMOUSETRAILS = 0x005E,
SPI_SETSCREENSAVERRUNNING = 0x0061,
SPI_SCREENSAVERRUNNING = SPI_SETSCREENSAVERRUNNING,
SPI_GETFILTERKEYS = 0x0032,
SPI_SETFILTERKEYS = 0x0033,
SPI_GETTOGGLEKEYS = 0x0034,
SPI_SETTOGGLEKEYS = 0x0035,
SPI_GETMOUSEKEYS = 0x0036,
SPI_SETMOUSEKEYS = 0x0037,
SPI_GETSHOWSOUNDS = 0x0038,
SPI_SETSHOWSOUNDS = 0x0039,
SPI_GETSTICKYKEYS = 0x003A,
SPI_SETSTICKYKEYS = 0x003B,
SPI_GETACCESSTIMEOUT = 0x003C,
SPI_SETACCESSTIMEOUT = 0x003D,
SPI_GETSERIALKEYS = 0x003E,
SPI_SETSERIALKEYS = 0x003F,
SPI_GETSOUNDSENTRY = 0x0040,
SPI_SETSOUNDSENTRY = 0x0041,
SPI_GETSNAPTODEFBUTTON = 0x005F,
SPI_SETSNAPTODEFBUTTON = 0x0060,
SPI_GETMOUSEHOVERWIDTH = 0x0062,
SPI_SETMOUSEHOVERWIDTH = 0x0063,
SPI_GETMOUSEHOVERHEIGHT = 0x0064,
SPI_SETMOUSEHOVERHEIGHT = 0x0065,
SPI_GETMOUSEHOVERTIME = 0x0066,
SPI_SETMOUSEHOVERTIME = 0x0067,
SPI_GETWHEELSCROLLLINES = 0x0068,
SPI_SETWHEELSCROLLLINES = 0x0069,
SPI_GETMENUSHOWDELAY = 0x006A,
SPI_SETMENUSHOWDELAY = 0x006B,
SPI_GETWHEELSCROLLCHARS = 0x006C,
SPI_SETWHEELSCROLLCHARS = 0x006D,
SPI_GETSHOWIMEUI = 0x006E,
SPI_SETSHOWIMEUI = 0x006F,
SPI_GETMOUSESPEED = 0x0070,
SPI_SETMOUSESPEED = 0x0071,
SPI_GETSCREENSAVERRUNNING = 0x0072,
SPI_GETDESKWALLPAPER = 0x0073,
SPI_GETAUDIODESCRIPTION = 0x0074,
SPI_SETAUDIODESCRIPTION = 0x0075,
SPI_GETSCREENSAVESECURE = 0x0076,
SPI_SETSCREENSAVESECURE = 0x0077,
SPI_GETHUNGAPPTIMEOUT = 0x0078,
SPI_SETHUNGAPPTIMEOUT = 0x0079,
SPI_GETWAITTOKILLTIMEOUT = 0x007A,
SPI_SETWAITTOKILLTIMEOUT = 0x007B,
SPI_GETWAITTOKILLSERVICETIMEOUT = 0x007C,
SPI_SETWAITTOKILLSERVICETIMEOUT = 0x007D,
SPI_GETMOUSEDOCKTHRESHOLD = 0x007E,
SPI_SETMOUSEDOCKTHRESHOLD = 0x007F,
SPI_GETPENDOCKTHRESHOLD = 0x0080,
SPI_SETPENDOCKTHRESHOLD = 0x0081,
SPI_GETWINARRANGING = 0x0082,
SPI_SETWINARRANGING = 0x0083,
SPI_GETMOUSEDRAGOUTTHRESHOLD = 0x0084,
SPI_SETMOUSEDRAGOUTTHRESHOLD = 0x0085,
SPI_GETPENDRAGOUTTHRESHOLD = 0x0086,
SPI_SETPENDRAGOUTTHRESHOLD = 0x0087,
SPI_GETMOUSESIDEMOVETHRESHOLD = 0x0088,
SPI_SETMOUSESIDEMOVETHRESHOLD = 0x0089,
SPI_GETPENSIDEMOVETHRESHOLD = 0x008A,
SPI_SETPENSIDEMOVETHRESHOLD = 0x008B,
SPI_GETDRAGFROMMAXIMIZE = 0x008C,
SPI_SETDRAGFROMMAXIMIZE = 0x008D,
SPI_GETSNAPSIZING = 0x008E,
SPI_SETSNAPSIZING = 0x008F,
SPI_GETDOCKMOVING = 0x0090,
SPI_SETDOCKMOVING = 0x0091,
SPI_GETACTIVEWINDOWTRACKING = 0x1000,
SPI_SETACTIVEWINDOWTRACKING = 0x1001,
SPI_GETMENUANIMATION = 0x1002,
SPI_SETMENUANIMATION = 0x1003,
SPI_GETCOMBOBOXANIMATION = 0x1004,
SPI_SETCOMBOBOXANIMATION = 0x1005,
SPI_GETLISTBOXSMOOTHSCROLLING = 0x1006,
SPI_SETLISTBOXSMOOTHSCROLLING = 0x1007,
SPI_GETGRADIENTCAPTIONS = 0x1008,
SPI_SETGRADIENTCAPTIONS = 0x1009,
SPI_GETKEYBOARDCUES = 0x100A,
SPI_SETKEYBOARDCUES = 0x100B,
SPI_GETMENUUNDERLINES = SPI_GETKEYBOARDCUES,
SPI_SETMENUUNDERLINES = SPI_SETKEYBOARDCUES,
SPI_GETACTIVEWNDTRKZORDER = 0x100C,
SPI_SETACTIVEWNDTRKZORDER = 0x100D,
SPI_GETHOTTRACKING = 0x100E,
SPI_SETHOTTRACKING = 0x100F,
SPI_GETMENUFADE = 0x1012,
SPI_SETMENUFADE = 0x1013,
SPI_GETSELECTIONFADE = 0x1014,
SPI_SETSELECTIONFADE = 0x1015,
SPI_GETTOOLTIPANIMATION = 0x1016,
SPI_SETTOOLTIPANIMATION = 0x1017,
SPI_GETTOOLTIPFADE = 0x1018,
SPI_SETTOOLTIPFADE = 0x1019,
SPI_GETCURSORSHADOW = 0x101A,
SPI_SETCURSORSHADOW = 0x101B,
SPI_GETMOUSESONAR = 0x101C,
SPI_SETMOUSESONAR = 0x101D,
SPI_GETMOUSECLICKLOCK = 0x101E,
SPI_SETMOUSECLICKLOCK = 0x101F,
SPI_GETMOUSEVANISH = 0x1020,
SPI_SETMOUSEVANISH = 0x1021,
SPI_GETFLATMENU = 0x1022,
SPI_SETFLATMENU = 0x1023,
SPI_GETDROPSHADOW = 0x1024,
SPI_SETDROPSHADOW = 0x1025,
SPI_GETBLOCKSENDINPUTRESETS = 0x1026,
SPI_SETBLOCKSENDINPUTRESETS = 0x1027,
SPI_GETUIEFFECTS = 0x103E,
SPI_SETUIEFFECTS = 0x103F,
SPI_GETDISABLEOVERLAPPEDCONTENT = 0x1040,
SPI_SETDISABLEOVERLAPPEDCONTENT = 0x1041,
SPI_GETCLIENTAREAANIMATION = 0x1042,
SPI_SETCLIENTAREAANIMATION = 0x1043,
SPI_GETCLEARTYPE = 0x1048,
SPI_SETCLEARTYPE = 0x1049,
SPI_GETSPEECHRECOGNITION = 0x104A,
SPI_SETSPEECHRECOGNITION = 0x104B,
SPI_GETFOREGROUNDLOCKTIMEOUT = 0x2000,
SPI_SETFOREGROUNDLOCKTIMEOUT = 0x2001,
SPI_GETACTIVEWNDTRKTIMEOUT = 0x2002,
SPI_SETACTIVEWNDTRKTIMEOUT = 0x2003,
SPI_GETFOREGROUNDFLASHCOUNT = 0x2004,
SPI_SETFOREGROUNDFLASHCOUNT = 0x2005,
SPI_GETCARETWIDTH = 0x2006,
SPI_SETCARETWIDTH = 0x2007,
SPI_GETMOUSECLICKLOCKTIME = 0x2008,
SPI_SETMOUSECLICKLOCKTIME = 0x2009,
SPI_GETFONTSMOOTHINGTYPE = 0x200A,
SPI_SETFONTSMOOTHINGTYPE = 0x200B,
SPI_GETFONTSMOOTHINGCONTRAST = 0x200C,
SPI_SETFONTSMOOTHINGCONTRAST = 0x200D,
SPI_GETFOCUSBORDERWIDTH = 0x200E,
SPI_SETFOCUSBORDERWIDTH = 0x200F,
SPI_GETFOCUSBORDERHEIGHT = 0x2010,
SPI_SETFOCUSBORDERHEIGHT = 0x2011,
SPI_GETFONTSMOOTHINGORIENTATION = 0x2012,
SPI_SETFONTSMOOTHINGORIENTATION = 0x2013,
SPI_GETMINIMUMHITRADIUS = 0x2014,
SPI_SETMINIMUMHITRADIUS = 0x2015,
SPI_GETMESSAGEDURATION = 0x2016,
SPI_SETMESSAGEDURATION = 0x2017,
}