Click here to Skip to main content
15,892,809 members
Articles / Desktop Programming / WPF

Global Shortcuts in WinForms and WPF

Rate me:
Please Sign up or sign in to vote.
4.98/5 (43 votes)
20 Oct 2020MIT14 min read 123.6K   8.4K   124  
Library that allows an app to process hotkeys and perform other keyboard manipulations
This article shows how to register and manage System-Global hotkeys in WinForm and WPF applications and perform some keyboard manipulation from your app and has a custom hotkey control.

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BondTech.HotkeyManagement.Win", "BondTech.HotkeyManager.Win\BondTech.HotkeyManagement.Win.csproj", "{90B50709-4309-418C-8302-3C956BF4624C}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CS", "CS", "{C152B6D9-05F7-4206-9AEA-50E988E931FE}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Library", "Library", "{68DE812C-E111-4E39-8DD6-1039C3848BF1}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Win", "Win", "{50626814-DCAB-49A4-9E18-E97D67921D7B}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sample", "Sample", "{1C684F65-7FEB-4ABD-89B2-6B523B04D9D6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GlobalShortcutCS.Win", "Global Shortcut.Win-CS\GlobalShortcutCS.Win\GlobalShortcutCS.Win.csproj", "{23C47CEC-0BF8-4C3E-B641-4D5B7A4CBC41}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WPF", "WPF", "{A3C779E9-F29C-4724-A925-81E0A4B5F0D6}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Library", "Library", "{921ED4DF-7DA9-401E-9D2C-2676720B1FD4}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BondTech.HotKeyManager.WPF", "BondTech.HotKeyManager.WPF\BondTech.HotKeyManager.WPF.csproj", "{FF71E607-B300-4D9D-8021-2BF4DBB7FCEE}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sample", "Sample", "{8A6D38C5-DC27-4CB5-8848-C47AC0A1ED86}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GlobalShortcutCS.WPF", "GlobalShortcutCS.WPF\GlobalShortcutCS.WPF.csproj", "{3D12641F-83AE-4B5C-A8D1-D8E504C6AE2C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BondTech.HotKeyManagement.WPF.4", "BondTech.HotKeyManagement.WPF.4\BondTech.HotKeyManagement.WPF.4.csproj", "{C78F31C0-EC07-4194-90D4-9CB771AD41A1}"
EndProject
Global
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
		Debug|Any CPU = Debug|Any CPU
		Debug|Mixed Platforms = Debug|Mixed Platforms
		Debug|x86 = Debug|x86
		Release|Any CPU = Release|Any CPU
		Release|Mixed Platforms = Release|Mixed Platforms
		Release|x86 = Release|x86
	EndGlobalSection
	GlobalSection(ProjectConfigurationPlatforms) = postSolution
		{90B50709-4309-418C-8302-3C956BF4624C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{90B50709-4309-418C-8302-3C956BF4624C}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{90B50709-4309-418C-8302-3C956BF4624C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
		{90B50709-4309-418C-8302-3C956BF4624C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
		{90B50709-4309-418C-8302-3C956BF4624C}.Debug|x86.ActiveCfg = Debug|Any CPU
		{90B50709-4309-418C-8302-3C956BF4624C}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{90B50709-4309-418C-8302-3C956BF4624C}.Release|Any CPU.Build.0 = Release|Any CPU
		{90B50709-4309-418C-8302-3C956BF4624C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
		{90B50709-4309-418C-8302-3C956BF4624C}.Release|Mixed Platforms.Build.0 = Release|Any CPU
		{90B50709-4309-418C-8302-3C956BF4624C}.Release|x86.ActiveCfg = Release|Any CPU
		{23C47CEC-0BF8-4C3E-B641-4D5B7A4CBC41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{23C47CEC-0BF8-4C3E-B641-4D5B7A4CBC41}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{23C47CEC-0BF8-4C3E-B641-4D5B7A4CBC41}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
		{23C47CEC-0BF8-4C3E-B641-4D5B7A4CBC41}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
		{23C47CEC-0BF8-4C3E-B641-4D5B7A4CBC41}.Debug|x86.ActiveCfg = Debug|x86
		{23C47CEC-0BF8-4C3E-B641-4D5B7A4CBC41}.Debug|x86.Build.0 = Debug|x86
		{23C47CEC-0BF8-4C3E-B641-4D5B7A4CBC41}.Release|Any CPU.ActiveCfg = Release|x86
		{23C47CEC-0BF8-4C3E-B641-4D5B7A4CBC41}.Release|Mixed Platforms.ActiveCfg = Release|x86
		{23C47CEC-0BF8-4C3E-B641-4D5B7A4CBC41}.Release|Mixed Platforms.Build.0 = Release|x86
		{23C47CEC-0BF8-4C3E-B641-4D5B7A4CBC41}.Release|x86.ActiveCfg = Release|x86
		{23C47CEC-0BF8-4C3E-B641-4D5B7A4CBC41}.Release|x86.Build.0 = Release|x86
		{FF71E607-B300-4D9D-8021-2BF4DBB7FCEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{FF71E607-B300-4D9D-8021-2BF4DBB7FCEE}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{FF71E607-B300-4D9D-8021-2BF4DBB7FCEE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
		{FF71E607-B300-4D9D-8021-2BF4DBB7FCEE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
		{FF71E607-B300-4D9D-8021-2BF4DBB7FCEE}.Debug|x86.ActiveCfg = Debug|Any CPU
		{FF71E607-B300-4D9D-8021-2BF4DBB7FCEE}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{FF71E607-B300-4D9D-8021-2BF4DBB7FCEE}.Release|Any CPU.Build.0 = Release|Any CPU
		{FF71E607-B300-4D9D-8021-2BF4DBB7FCEE}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
		{FF71E607-B300-4D9D-8021-2BF4DBB7FCEE}.Release|Mixed Platforms.Build.0 = Release|Any CPU
		{FF71E607-B300-4D9D-8021-2BF4DBB7FCEE}.Release|x86.ActiveCfg = Release|Any CPU
		{3D12641F-83AE-4B5C-A8D1-D8E504C6AE2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{3D12641F-83AE-4B5C-A8D1-D8E504C6AE2C}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{3D12641F-83AE-4B5C-A8D1-D8E504C6AE2C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
		{3D12641F-83AE-4B5C-A8D1-D8E504C6AE2C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
		{3D12641F-83AE-4B5C-A8D1-D8E504C6AE2C}.Debug|x86.ActiveCfg = Debug|x86
		{3D12641F-83AE-4B5C-A8D1-D8E504C6AE2C}.Debug|x86.Build.0 = Debug|x86
		{3D12641F-83AE-4B5C-A8D1-D8E504C6AE2C}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{3D12641F-83AE-4B5C-A8D1-D8E504C6AE2C}.Release|Any CPU.Build.0 = Release|Any CPU
		{3D12641F-83AE-4B5C-A8D1-D8E504C6AE2C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
		{3D12641F-83AE-4B5C-A8D1-D8E504C6AE2C}.Release|Mixed Platforms.Build.0 = Release|Any CPU
		{3D12641F-83AE-4B5C-A8D1-D8E504C6AE2C}.Release|x86.ActiveCfg = Release|x86
		{3D12641F-83AE-4B5C-A8D1-D8E504C6AE2C}.Release|x86.Build.0 = Release|x86
		{C78F31C0-EC07-4194-90D4-9CB771AD41A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{C78F31C0-EC07-4194-90D4-9CB771AD41A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{C78F31C0-EC07-4194-90D4-9CB771AD41A1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
		{C78F31C0-EC07-4194-90D4-9CB771AD41A1}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
		{C78F31C0-EC07-4194-90D4-9CB771AD41A1}.Debug|x86.ActiveCfg = Debug|Any CPU
		{C78F31C0-EC07-4194-90D4-9CB771AD41A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{C78F31C0-EC07-4194-90D4-9CB771AD41A1}.Release|Any CPU.Build.0 = Release|Any CPU
		{C78F31C0-EC07-4194-90D4-9CB771AD41A1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
		{C78F31C0-EC07-4194-90D4-9CB771AD41A1}.Release|Mixed Platforms.Build.0 = Release|Any CPU
		{C78F31C0-EC07-4194-90D4-9CB771AD41A1}.Release|x86.ActiveCfg = Release|Any CPU
	EndGlobalSection
	GlobalSection(SolutionProperties) = preSolution
		HideSolutionNode = FALSE
	EndGlobalSection
	GlobalSection(NestedProjects) = preSolution
		{50626814-DCAB-49A4-9E18-E97D67921D7B} = {C152B6D9-05F7-4206-9AEA-50E988E931FE}
		{A3C779E9-F29C-4724-A925-81E0A4B5F0D6} = {C152B6D9-05F7-4206-9AEA-50E988E931FE}
		{68DE812C-E111-4E39-8DD6-1039C3848BF1} = {50626814-DCAB-49A4-9E18-E97D67921D7B}
		{1C684F65-7FEB-4ABD-89B2-6B523B04D9D6} = {50626814-DCAB-49A4-9E18-E97D67921D7B}
		{90B50709-4309-418C-8302-3C956BF4624C} = {68DE812C-E111-4E39-8DD6-1039C3848BF1}
		{23C47CEC-0BF8-4C3E-B641-4D5B7A4CBC41} = {1C684F65-7FEB-4ABD-89B2-6B523B04D9D6}
		{921ED4DF-7DA9-401E-9D2C-2676720B1FD4} = {A3C779E9-F29C-4724-A925-81E0A4B5F0D6}
		{8A6D38C5-DC27-4CB5-8848-C47AC0A1ED86} = {A3C779E9-F29C-4724-A925-81E0A4B5F0D6}
		{FF71E607-B300-4D9D-8021-2BF4DBB7FCEE} = {921ED4DF-7DA9-401E-9D2C-2676720B1FD4}
		{C78F31C0-EC07-4194-90D4-9CB771AD41A1} = {921ED4DF-7DA9-401E-9D2C-2676720B1FD4}
		{3D12641F-83AE-4B5C-A8D1-D8E504C6AE2C} = {8A6D38C5-DC27-4CB5-8848-C47AC0A1ED86}
	EndGlobalSection
EndGlobal

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The MIT License


Written By
Student
Nigeria Nigeria
Bond is a Physics student in a college in Nigeria.
Started programming right after high school and has fallen in love with computers ever since. Likes using the word 'seriously' and is a big fan of movies especially sci-fi.

Bond is a precise, honest, caring, down to earth gentleman.
He understands that being negative is easy. There will always be a downside to everything good, a hurdle to everything desirable and a con to every pro. He has realized that the real courage is in finding the good in what you have, the opportunities in every hurdle and the pros in every con.

Comments and Discussions