hey i need help with system hooks. I need it so when mi program is minimized i can press Ctrl R and it will start a script in the program then ctrl s will stop it.
Thank you in advance
Mague
4 2549
hey i need help with system hooks. I need it so when mi program is minimized i can press Ctrl R and it will start a script in the program then ctrl s will stop it.
Thank you in advance
Mague
[Read Very Carefully]
Hello, So you mean to create an hotkey ???
If you want to press Ctrl + R, and your program is minizimed, so Ctrl+R is an hotkey for your program.
------------------------------------
To begin, create a new solution (Windows Application).
I call the solution " HotkeyNameSpace " .
[Do not change your form name After creating the solution.]
[And Save your solution before starting].
------------------------------------------------------------
After you create the solution: go to " Solution Explorer ", and add to your PROJECT (NOT SOLUTION) a new item (Make the new item: A CODE FILE), and make the CODE FILE's name " Hotkey.cs ".
And add another code-file to your project,make its name " SystemHotkey.cs ".
--------------------------------------------------------------------------------------------------------------------
Now [From the Solution Explorer] open Hotkey.cs, After you open it: you see an empty page [empty page code].
And copy this code to the empty page (Hotkey.cs page): -
using System;
-
using System.Runtime.InteropServices;
-
using System.Windows.Forms;
-
-
namespace Hotkey.Win32
-
{
-
/// <summary>
-
/// Summary description for Win32.
-
/// </summary>
-
public class User32
-
{
-
[DllImport("user32.dll")]
-
public static extern bool RegisterHotKey(IntPtr hWnd, int id, int fsModifiers, int vlc);
-
[DllImport("user32.dll")]
-
public static extern bool UnregisterHotKey(IntPtr hWnd, int id);
-
}
-
-
public class Kernel32
-
{
-
[DllImport("kernel32.dll")]
-
public static extern int GlobalAddAtom(string Name);
-
[DllImport("kernel32.dll")]
-
public static extern int GlobalDeleteAtom(int atom);
-
[DllImport("kernel32.dll")]
-
public static extern IntPtr GlobalLock(IntPtr hMem);
-
[DllImport("kernel32.dll")]
-
public static extern bool GlobalUnlock(IntPtr hMem);
-
}
-
-
public enum Modifiers { MOD_ALT = 0x0001, MOD_CONTROL = 0x0002, MOD_SHIFT = 0x0004, MOD_WIN = 0x0008 }
-
public enum Msgs
-
{
-
WM_NULL = 0x0000,
-
WM_CREATE = 0x0001,
-
WM_DESTROY = 0x0002,
-
WM_MOVE = 0x0003,
-
WM_SIZE = 0x0005,
-
WM_ACTIVATE = 0x0006,
-
WM_SETFOCUS = 0x0007,
-
WM_KILLFOCUS = 0x0008,
-
WM_ENABLE = 0x000A,
-
WM_SETREDRAW = 0x000B,
-
WM_SETTEXT = 0x000C,
-
WM_GETTEXT = 0x000D,
-
WM_GETTEXTLENGTH = 0x000E,
-
WM_PAINT = 0x000F,
-
WM_CLOSE = 0x0010,
-
WM_QUERYENDSESSION = 0x0011,
-
WM_QUIT = 0x0012,
-
WM_QUERYOPEN = 0x0013,
-
WM_ERASEBKGND = 0x0014,
-
WM_SYSCOLORCHANGE = 0x0015,
-
WM_ENDSESSION = 0x0016,
-
WM_SHOWWINDOW = 0x0018,
-
WM_WININICHANGE = 0x001A,
-
WM_SETTINGCHANGE = 0x001A,
-
WM_DEVMODECHANGE = 0x001B,
-
WM_ACTIVATEAPP = 0x001C,
-
WM_FONTCHANGE = 0x001D,
-
WM_TIMECHANGE = 0x001E,
-
WM_CANCELMODE = 0x001F,
-
WM_SETCURSOR = 0x0020,
-
WM_MOUSEACTIVATE = 0x0021,
-
WM_CHILDACTIVATE = 0x0022,
-
WM_QUEUESYNC = 0x0023,
-
WM_GETMINMAXINFO = 0x0024,
-
WM_PAINTICON = 0x0026,
-
WM_ICONERASEBKGND = 0x0027,
-
WM_NEXTDLGCTL = 0x0028,
-
WM_SPOOLERSTATUS = 0x002A,
-
WM_DRAWITEM = 0x002B,
-
WM_MEASUREITEM = 0x002C,
-
WM_DELETEITEM = 0x002D,
-
WM_VKEYTOITEM = 0x002E,
-
WM_CHARTOITEM = 0x002F,
-
WM_SETFONT = 0x0030,
-
WM_GETFONT = 0x0031,
-
WM_SETHOTKEY = 0x0032,
-
WM_GETHOTKEY = 0x0033,
-
WM_QUERYDRAGICON = 0x0037,
-
WM_COMPAREITEM = 0x0039,
-
WM_GETOBJECT = 0x003D,
-
WM_COMPACTING = 0x0041,
-
WM_COMMNOTIFY = 0x0044,
-
WM_WINDOWPOSCHANGING = 0x0046,
-
WM_WINDOWPOSCHANGED = 0x0047,
-
WM_POWER = 0x0048,
-
WM_COPYDATA = 0x004A,
-
WM_CANCELJOURNAL = 0x004B,
-
WM_NOTIFY = 0x004E,
-
WM_INPUTLANGCHANGEREQUEST = 0x0050,
-
WM_INPUTLANGCHANGE = 0x0051,
-
WM_TCARD = 0x0052,
-
WM_HELP = 0x0053,
-
WM_USERCHANGED = 0x0054,
-
WM_NOTIFYFORMAT = 0x0055,
-
WM_CONTEXTMENU = 0x007B,
-
WM_STYLECHANGING = 0x007C,
-
WM_STYLECHANGED = 0x007D,
-
WM_DISPLAYCHANGE = 0x007E,
-
WM_GETICON = 0x007F,
-
WM_SETICON = 0x0080,
-
WM_NCCREATE = 0x0081,
-
WM_NCDESTROY = 0x0082,
-
WM_NCCALCSIZE = 0x0083,
-
WM_NCHITTEST = 0x0084,
-
WM_NCPAINT = 0x0085,
-
WM_NCACTIVATE = 0x0086,
-
WM_GETDLGCODE = 0x0087,
-
WM_SYNCPAINT = 0x0088,
-
WM_NCMOUSEMOVE = 0x00A0,
-
WM_NCLBUTTONDOWN = 0x00A1,
-
WM_NCLBUTTONUP = 0x00A2,
-
WM_NCLBUTTONDBLCLK = 0x00A3,
-
WM_NCRBUTTONDOWN = 0x00A4,
-
WM_NCRBUTTONUP = 0x00A5,
-
WM_NCRBUTTONDBLCLK = 0x00A6,
-
WM_NCMBUTTONDOWN = 0x00A7,
-
WM_NCMBUTTONUP = 0x00A8,
-
WM_NCMBUTTONDBLCLK = 0x00A9,
-
WM_KEYDOWN = 0x0100,
-
WM_KEYUP = 0x0101,
-
WM_CHAR = 0x0102,
-
WM_DEADCHAR = 0x0103,
-
WM_SYSKEYDOWN = 0x0104,
-
WM_SYSKEYUP = 0x0105,
-
WM_SYSCHAR = 0x0106,
-
WM_SYSDEADCHAR = 0x0107,
-
WM_KEYLAST = 0x0108,
-
WM_IME_STARTCOMPOSITION = 0x010D,
-
WM_IME_ENDCOMPOSITION = 0x010E,
-
WM_IME_COMPOSITION = 0x010F,
-
WM_IME_KEYLAST = 0x010F,
-
WM_INITDIALOG = 0x0110,
-
WM_COMMAND = 0x0111,
-
WM_SYSCOMMAND = 0x0112,
-
WM_TIMER = 0x0113,
-
WM_HSCROLL = 0x0114,
-
WM_VSCROLL = 0x0115,
-
WM_INITMENU = 0x0116,
-
WM_INITMENUPOPUP = 0x0117,
-
WM_MENUSELECT = 0x011F,
-
WM_MENUCHAR = 0x0120,
-
WM_ENTERIDLE = 0x0121,
-
WM_MENURBUTTONUP = 0x0122,
-
WM_MENUDRAG = 0x0123,
-
WM_MENUGETOBJECT = 0x0124,
-
WM_UNINITMENUPOPUP = 0x0125,
-
WM_MENUCOMMAND = 0x0126,
-
WM_CTLCOLORMSGBOX = 0x0132,
-
WM_CTLCOLOREDIT = 0x0133,
-
WM_CTLCOLORLISTBOX = 0x0134,
-
WM_CTLCOLORBTN = 0x0135,
-
WM_CTLCOLORDLG = 0x0136,
-
WM_CTLCOLORSCROLLBAR = 0x0137,
-
WM_CTLCOLORSTATIC = 0x0138,
-
WM_MOUSEMOVE = 0x0200,
-
WM_LBUTTONDOWN = 0x0201,
-
WM_LBUTTONUP = 0x0202,
-
WM_LBUTTONDBLCLK = 0x0203,
-
WM_RBUTTONDOWN = 0x0204,
-
WM_RBUTTONUP = 0x0205,
-
WM_RBUTTONDBLCLK = 0x0206,
-
WM_MBUTTONDOWN = 0x0207,
-
WM_MBUTTONUP = 0x0208,
-
WM_MBUTTONDBLCLK = 0x0209,
-
WM_MOUSEWHEEL = 0x020A,
-
WM_PARENTNOTIFY = 0x0210,
-
WM_ENTERMENULOOP = 0x0211,
-
WM_EXITMENULOOP = 0x0212,
-
WM_NEXTMENU = 0x0213,
-
WM_SIZING = 0x0214,
-
WM_CAPTURECHANGED = 0x0215,
-
WM_MOVING = 0x0216,
-
WM_DEVICECHANGE = 0x0219,
-
WM_MDICREATE = 0x0220,
-
WM_MDIDESTROY = 0x0221,
-
WM_MDIACTIVATE = 0x0222,
-
WM_MDIRESTORE = 0x0223,
-
WM_MDINEXT = 0x0224,
-
WM_MDIMAXIMIZE = 0x0225,
-
WM_MDITILE = 0x0226,
-
WM_MDICASCADE = 0x0227,
-
WM_MDIICONARRANGE = 0x0228,
-
WM_MDIGETACTIVE = 0x0229,
-
WM_MDISETMENU = 0x0230,
-
WM_ENTERSIZEMOVE = 0x0231,
-
WM_EXITSIZEMOVE = 0x0232,
-
WM_DROPFILES = 0x0233,
-
WM_MDIREFRESHMENU = 0x0234,
-
WM_IME_SETCONTEXT = 0x0281,
-
WM_IME_NOTIFY = 0x0282,
-
WM_IME_CONTROL = 0x0283,
-
WM_IME_COMPOSITIONFULL = 0x0284,
-
WM_IME_SELECT = 0x0285,
-
WM_IME_CHAR = 0x0286,
-
WM_IME_REQUEST = 0x0288,
-
WM_IME_KEYDOWN = 0x0290,
-
WM_IME_KEYUP = 0x0291,
-
WM_MOUSEHOVER = 0x02A1,
-
WM_MOUSELEAVE = 0x02A3,
-
WM_CUT = 0x0300,
-
WM_COPY = 0x0301,
-
WM_PASTE = 0x0302,
-
WM_CLEAR = 0x0303,
-
WM_UNDO = 0x0304,
-
WM_RENDERFORMAT = 0x0305,
-
WM_RENDERALLFORMATS = 0x0306,
-
WM_DESTROYCLIPBOARD = 0x0307,
-
WM_DRAWCLIPBOARD = 0x0308,
-
WM_PAINTCLIPBOARD = 0x0309,
-
WM_VSCROLLCLIPBOARD = 0x030A,
-
WM_SIZECLIPBOARD = 0x030B,
-
WM_ASKCBFORMATNAME = 0x030C,
-
WM_CHANGECBCHAIN = 0x030D,
-
WM_HSCROLLCLIPBOARD = 0x030E,
-
WM_QUERYNEWPALETTE = 0x030F,
-
WM_PALETTEISCHANGING = 0x0310,
-
WM_PALETTECHANGED = 0x0311,
-
WM_HOTKEY = 0x0312,
-
WM_PRINT = 0x0317,
-
WM_PRINTCLIENT = 0x0318,
-
WM_HANDHELDFIRST = 0x0358,
-
WM_HANDHELDLAST = 0x035F,
-
WM_AFXFIRST = 0x0360,
-
WM_AFXLAST = 0x037F,
-
WM_PENWINFIRST = 0x0380,
-
WM_PENWINLAST = 0x038F,
-
WM_APP = 0x8000,
-
WM_USER = 0x0400,
-
WM_DDE_INITIATE = 0x03E0,
-
WM_DDE_TERMINATE,
-
WM_DDE_ADVISE,
-
WM_DDE_UNADVISE,
-
WM_DDE_ACK,
-
WM_DDE_DATA,
-
WM_DDE_REQUEST,
-
WM_DDE_POKE,
-
WM_DDE_EXECUTE
-
}
-
-
-
/// <summary>
-
/// Defines a delegate for Message handling
-
/// </summary>
-
public delegate void MessageEventHandler(object Sender, ref Message msg, ref bool Handled);
-
-
/// <summary>
-
/// Inherits from System.Windows.Form.NativeWindow. Provides an Event for Message handling
-
/// </summary>
-
public class NativeWindowWithEvent : System.Windows.Forms.NativeWindow
-
{
-
public event MessageEventHandler ProcessMessage;
-
protected override void WndProc(ref Message m)
-
{
-
if (ProcessMessage != null)
-
{
-
bool Handled = false;
-
ProcessMessage(this, ref m, ref Handled);
-
if (!Handled) base.WndProc(ref m);
-
}
-
else base.WndProc(ref m);
-
}
-
}
-
-
/// <summary>
-
/// Inherits from NativeWindowWithEvent and automatic creates/destroys of a dummy window
-
/// </summary>
-
public class DummyWindowWithEvent : NativeWindowWithEvent, IDisposable
-
{
-
public DummyWindowWithEvent()
-
{
-
CreateParams parms = new CreateParams();
-
this.CreateHandle(parms);
-
}
-
public void Dispose()
-
{
-
if (this.Handle != (IntPtr)0)
-
{
-
this.DestroyHandle();
-
}
-
}
-
}
-
}
-
-
then Save your project.
----------------------------------
Now [from the Solution Explorer] open SystemHotkey.cs.
You also can see an empty page (SystemHotkey.cs page is empty).
Copy this code to the SystemHotkey.cs page: -
using System;
-
using System.ComponentModel;
-
using System.Collections;
-
using System.Diagnostics;
-
using System.Windows.Forms;
-
using Hotkey.Win32;
-
-
namespace Hotkey.SystemHotkey
-
{
-
/// <summary>
-
/// Handles a System Hotkey
-
/// </summary>
-
public class SystemHotkey : System.ComponentModel.Component, IDisposable
-
{
-
private System.ComponentModel.Container components = null;
-
protected DummyWindowWithEvent m_Window = new DummyWindowWithEvent(); //window for WM_Hotkey Messages
-
protected Shortcut m_HotKey = Shortcut.None;
-
protected bool isRegistered = false;
-
public event System.EventHandler Pressed;
-
public event System.EventHandler Error;
-
-
public SystemHotkey(System.ComponentModel.IContainer container)
-
{
-
container.Add(this);
-
InitializeComponent();
-
m_Window.ProcessMessage += new MessageEventHandler(MessageEvent);
-
}
-
-
public SystemHotkey()
-
{
-
InitializeComponent();
-
if (!DesignMode)
-
{
-
m_Window.ProcessMessage += new MessageEventHandler(MessageEvent);
-
}
-
}
-
-
public new void Dispose()
-
{
-
if (isRegistered)
-
{
-
if (UnregisterHotkey())
-
System.Diagnostics.Debug.WriteLine("Unreg: OK");
-
}
-
System.Diagnostics.Debug.WriteLine("Disposed");
-
}
-
#region Component Designer generated code
-
/// <summary>
-
/// Required method for Designer support - do not modify
-
/// the contents of this method with the code editor.
-
/// </summary>
-
private void InitializeComponent()
-
{
-
components = new System.ComponentModel.Container();
-
}
-
#endregion
-
-
protected void MessageEvent(object sender, ref Message m, ref bool Handled)
-
{ //Handle WM_Hotkey event
-
if ((m.Msg == (int)Win32.Msgs.WM_HOTKEY) && (m.WParam == (IntPtr)this.GetType().GetHashCode()))
-
{
-
Handled = true;
-
System.Diagnostics.Debug.WriteLine("HOTKEY pressed!");
-
if (Pressed != null) Pressed(this, EventArgs.Empty);
-
}
-
}
-
-
protected bool UnregisterHotkey()
-
{ //unregister hotkey
-
return Win32.User32.UnregisterHotKey(m_Window.Handle, this.GetType().GetHashCode());
-
}
-
-
protected bool RegisterHotkey(Shortcut key)
-
{ //register hotkey
-
int mod = 0;
-
Keys k2 = Keys.None;
-
if (((int)key & (int)Keys.Alt) == (int)Keys.Alt) { mod += (int)Win32.Modifiers.MOD_ALT; k2 = Keys.Alt; }
-
if (((int)key & (int)Keys.Shift) == (int)Keys.Shift) { mod += (int)Win32.Modifiers.MOD_SHIFT; k2 = Keys.Shift; }
-
if (((int)key & (int)Keys.Control) == (int)Keys.Control) { mod += (int)Win32.Modifiers.MOD_CONTROL; k2 = Keys.Control; }
-
-
System.Diagnostics.Debug.Write(mod.ToString() + " ");
-
System.Diagnostics.Debug.WriteLine((((int)key) - ((int)k2)).ToString());
-
-
return Win32.User32.RegisterHotKey(m_Window.Handle, this.GetType().GetHashCode(), (int)mod, ((int)key) - ((int)k2));
-
}
-
-
public bool IsRegistered
-
{
-
get { return isRegistered; }
-
}
-
-
-
[DefaultValue(Shortcut.None)]
-
public Shortcut Shortcut
-
{
-
get { return m_HotKey; }
-
set
-
{
-
if (DesignMode) { m_HotKey = value; return; } //Don't register in Designmode
-
if ((isRegistered) && (m_HotKey != value)) //Unregister previous registered Hotkey
-
{
-
if (UnregisterHotkey())
-
{
-
System.Diagnostics.Debug.WriteLine("Unreg: OK");
-
isRegistered = false;
-
}
-
else
-
{
-
if (Error != null) Error(this, EventArgs.Empty);
-
System.Diagnostics.Debug.WriteLine("Unreg: ERR");
-
}
-
}
-
if (value == Shortcut.None) { m_HotKey = value; return; }
-
if (RegisterHotkey(value)) //Register new Hotkey
-
{
-
System.Diagnostics.Debug.WriteLine("Reg: OK");
-
isRegistered = true;
-
}
-
else
-
{
-
if (Error != null) Error(this, EventArgs.Empty);
-
System.Diagnostics.Debug.WriteLine("Reg: ERR");
-
}
-
m_HotKey = value;
-
}
-
}
-
}
-
}
-
-
Save your project.
--------------------------
Now delete Program.cs from the solution explorer.
-------------------------------------------------------------------------
And open Form1.cs [From the design mode, View the Form1 Code].
And clear all Form1.cs code, and add this code to the Form1.cs:
[Wirte the code to Form1.cs]: -
using System;
-
using System.Collections.Generic;
-
using System.ComponentModel;
-
using System.Data;
-
using System.Drawing;
-
using System.Text;
-
using System.Windows.Forms;
-
-
namespace HotkeyNameSpace
-
{
-
public partial class Form1 : Form
-
{
-
private System.Windows.Forms.Label label1;
-
//Making a new Hotkey.....
-
private Hotkey.SystemHotkey.SystemHotkey systemHotkey1;
-
private System.Windows.Forms.Label label2;
-
private System.ComponentModel.IContainer components;
-
-
public Form1()
-
{
-
//
-
// Required for Windows Form Designer support
-
//
-
InitializeComponent();
-
-
//
-
// TODO: Add any constructor code after InitializeComponent call
-
//
-
}
-
-
/// <summary>
-
/// Clean up any resources being used.
-
/// </summary>
-
protected override void Dispose(bool disposing)
-
{
-
if (disposing)
-
{
-
if (components != null)
-
{
-
components.Dispose();
-
}
-
}
-
base.Dispose(disposing);
-
}
-
-
#region Windows Form Designer generated code
-
/// <summary>
-
/// Required method for Designer support - do not modify
-
/// the contents of this method with the code editor.
-
/// </summary>
-
private void InitializeComponent()
-
{
-
this.components = new System.ComponentModel.Container();
-
this.systemHotkey1 = new Hotkey.SystemHotkey.SystemHotkey(this.components);
-
this.label1 = new System.Windows.Forms.Label();
-
this.label2 = new System.Windows.Forms.Label();
-
this.SuspendLayout();
-
//
-
// systemHotkey1
-
//
-
this.systemHotkey1.Shortcut = System.Windows.Forms.Shortcut.CtrlR; //Here make your own Hotkey.
-
this.systemHotkey1.Pressed += new System.EventHandler(this.systemHotkey1_Pressed);
-
//
-
// label1
-
//
-
this.label1.Location = new System.Drawing.Point(64, 16);
-
this.label1.Name = "label1";
-
this.label1.Size = new System.Drawing.Size(280, 96);
-
this.label1.TabIndex = 0;
-
this.label1.Text = "Waiting for events";
-
//
-
// label2
-
//
-
this.label2.Location = new System.Drawing.Point(72, 184);
-
this.label2.Name = "label2";
-
this.label2.Size = new System.Drawing.Size(240, 72);
-
this.label2.TabIndex = 1;
-
this.label2.Text = "Use the SystemHotkey Component in Windows Forms designer to modify the Hotkey. Pr" +
-
"ess Ctrl+R to fire the Hotkey event";
-
//
-
// Form1
-
//
-
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
-
this.ClientSize = new System.Drawing.Size(400, 286);
-
this.Controls.Add(this.label2);
-
this.Controls.Add(this.label1);
-
this.Name = "Form1";
-
this.Text = "Form1";
-
this.ResumeLayout(false);
-
-
}
-
#endregion
-
-
/// <summary>
-
/// The main entry point for the application.
-
/// </summary>
-
[STAThread]
-
static void Main()
-
{
-
Application.EnableVisualStyles();
-
Application.SetCompatibleTextRenderingDefault(false);
-
Application.Run(new Form1());
-
}
-
-
private void systemHotkey1_Pressed(object sender, System.EventArgs e)
-
{
-
label1.Text = "Hotkey Pressed!";
-
MessageBox.Show("Hotkey pressed...", "Attention", MessageBoxButtons.OK, MessageBoxIcon.Warning);
-
this.Activate();
-
this.BringToFront();
-
}
-
}
-
}
-
-
-------------
You can see from [the solution explorer] the Form1 icon, at the left of the icon: you can see a Plus Sign, click on the plus sign: you see the Form1 has two files [The first is Form1.Designer.cs, the second is Form1.resx].
So delete the Form1.Designer.cs.
--------------------------------------------------
And run your application (When the application running press Ctrl+R).
If you want to change the hotkey (or make another), you can see in Form1.cs.
Do not edit Hotkey.cs and SystemHotkey.cs.
Goodbye.
Hey how do u say if systemhotkey = Ctrl r or wat do i do
Hey how do u say if systemhotkey = Ctrl r or wat do i do
Hello, in the Form1.cs, read line 61. -
using System;
-
using System.Collections.Generic;
-
using System.ComponentModel;
-
using System.Data;
-
using System.Drawing;
-
using System.Text;
-
using System.Windows.Forms;
-
-
namespace HotkeyNameSpace
-
{
-
public partial class Form1 : Form
-
{
-
private System.Windows.Forms.Label label1;
-
//Making a new Hotkey.....
-
private Hotkey.SystemHotkey.SystemHotkey systemHotkey1;
-
private System.Windows.Forms.Label label2;
-
private System.ComponentModel.IContainer components;
-
-
public Form1()
-
{
-
//
-
// Required for Windows Form Designer support
-
//
-
InitializeComponent();
-
-
//
-
// TODO: Add any constructor code after InitializeComponent call
-
//
-
}
-
-
/// <summary>
-
/// Clean up any resources being used.
-
/// </summary>
-
protected override void Dispose(bool disposing)
-
{
-
if (disposing)
-
{
-
if (components != null)
-
{
-
components.Dispose();
-
}
-
}
-
base.Dispose(disposing);
-
}
-
-
#region Windows Form Designer generated code
-
/// <summary>
-
/// Required method for Designer support - do not modify
-
/// the contents of this method with the code editor.
-
/// </summary>
-
private void InitializeComponent()
-
{
-
this.components = new System.ComponentModel.Container();
-
this.systemHotkey1 = new Hotkey.SystemHotkey.SystemHotkey(this.components);
-
this.label1 = new System.Windows.Forms.Label();
-
this.label2 = new System.Windows.Forms.Label();
-
this.SuspendLayout();
-
//
-
// systemHotkey1
-
//
-
this.systemHotkey1.Shortcut = System.Windows.Forms.Shortcut.CtrlR; //Here make your own Hotkey.
-
this.systemHotkey1.Pressed += new System.EventHandler(this.systemHotkey1_Pressed);
-
//
-
// label1
-
//
-
this.label1.Location = new System.Drawing.Point(64, 16);
-
this.label1.Name = "label1";
-
this.label1.Size = new System.Drawing.Size(280, 96);
-
this.label1.TabIndex = 0;
-
this.label1.Text = "Waiting for events";
-
//
-
// label2
-
//
-
this.label2.Location = new System.Drawing.Point(72, 184);
-
this.label2.Name = "label2";
-
this.label2.Size = new System.Drawing.Size(240, 72);
-
this.label2.TabIndex = 1;
-
this.label2.Text = "Use the SystemHotkey Component in Windows Forms designer to modify the Hotkey. Pr" +
-
"ess Ctrl+R to fire the Hotkey event";
-
//
-
// Form1
-
//
-
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
-
this.ClientSize = new System.Drawing.Size(400, 286);
-
this.Controls.Add(this.label2);
-
this.Controls.Add(this.label1);
-
this.Name = "Form1";
-
this.Text = "Form1";
-
this.ResumeLayout(false);
-
-
}
-
#endregion
-
-
/// <summary>
-
/// The main entry point for the application.
-
/// </summary>
-
[STAThread]
-
static void Main()
-
{
-
Application.EnableVisualStyles();
-
Application.SetCompatibleTextRenderingDefault(fals e);
-
Application.Run(new Form1());
-
}
-
-
private void systemHotkey1_Pressed(object sender, System.EventArgs e)
-
{
-
label1.Text = "Hotkey Pressed!";
-
MessageBox.Show("Hotkey pressed...", "Attention", MessageBoxButtons.OK, MessageBoxIcon.Warning);
-
this.Activate();
-
this.BringToFront();
-
}
-
}
-
}
-
We can say: [Express Way] -
this.components = new System.ComponentModel.Container();
-
//Make a new hotkey.
-
this.systemHotkey1 = new Hotkey.SystemHotkey.SystemHotkey(this.components);
-
//Make a key to the hotkey.
-
this.systemHotkey1.Shortcut = System.Windows.Forms.Shortcut.CtrlR; //Here make your own Hotkey.
-
//Make an pressing event handler.
-
this.systemHotkey1.Pressed += new System.EventHandler(this.systemHotkey1_Pressed);
-
And: -
//If the hotkey pressed, do an action.
-
private void systemHotkey1_Pressed(object sender, System.EventArgs e)
-
{
-
label1.Text = "Hotkey Pressed!";
-
MessageBox.Show("Hotkey pressed...", "Attention", MessageBoxButtons.OK, MessageBoxIcon.Warning);
-
this.Activate();
-
this.BringToFront();
-
}
-
Hope this help you.
Sign in to post your reply or Sign up for a free account.
Similar topics
by: paul francis |
last post by:
Hi
Please help because I'm really stuck:
I'm trying to write an application in C# which can be used to track
the mouse pointer position on any window. I'm trying to use a Global
mouse hook to...
|
by: Alex |
last post by:
I am trying to determine if C# has the capabilities to listen for system
events when the application does not have the window's focus.
I am writing a windows application that I would like to run...
|
by: Jim Hubbard |
last post by:
I don't think you can hook system events outside your application in .Net
without using an unmanaged DLL, but I thought I'd ask.
Jim Hubbard
|
by: Patrick |
last post by:
I have been developing in VB6 for years. I am converting to VB.net. I was wondering if it is possible to create a System hook in VB.net. I know that I VB6, I could not, so I created one in C++. ...
|
by: leslie_tighe |
last post by:
Hello,
I need to build the following functionality into my application and
wanted to see if the System journal hooks were the right way to
approach this problem? If not, I would appreciate any...
|
by: cichy83 |
last post by:
Hi!
I have a problem with global hooks under these two OS.
I'm using three following types of hooks:
CBT Hokk,
Keyboard Hook,
Mouse Hooks.
I'm using BCB 6, under Win XP everything works fine...
|
by: Hema |
last post by:
hello all,
I am working on a project related to Internet Explorer. I want my
application to be invoked by a keypress( single key stroke or a
combination). But this must get invoked only when the...
|
by: Mague |
last post by:
Hey,
I've looked up system hooks but i cannot find how to use key hooks on Visual Studio 2005. I want to use system hook to detect if Ctrl R to start a pitucalar part of the program and Ctrl S to...
|
by: Jared Goralnick |
last post by:
Hi,
I'm in the process of developing some high-level specs for an
application. Some of the functionality of this application involves
intercepting Windows access to certain applications or...
|
by: schneider |
last post by:
I need to hook the system mouse down event.
I'm trying to replicate how a context menu hides when the mouse clicks
outside of the control.
Thanks,
Schneider
|
by: taylorcarr |
last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
|
by: aa123db |
last post by:
Variable and constants
Use var or let for variables and const fror constants.
Var foo ='bar';
Let foo ='bar';const baz ='bar';
Functions
function $name$ ($parameters$) {
}
...
|
by: ryjfgjl |
last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
|
by: BarryA |
last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
|
by: nemocccc |
last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
|
by: Hystou |
last post by:
There are some requirements for setting up RAID:
1. The motherboard and BIOS support RAID configuration.
2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
|
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
|
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers,...
| |