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 2561
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.c s 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 do this but with limited success. According to the
documentation (as I understand it) you can only do Global hooks in
..Net if the delegate procedure passed to SetWindowsHookEx is external.
|
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 in the
background when I am using my computer. I would like this windows
application to utilize the clipboard, and determine when data has changed on
the clipboard. I would also like my app to listen for Ctrl+C and Ctrl+V
events, as well as mouse...
|
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++. If it is possible, could you please provide an example. Thanks!
Also, could you please provide good resources (books or online articles/tutorials) that would be good for someone who is advanced VB6 programmer converting to VB.net. Thanks!
|
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 suggestions.
1) I need to be able to define fields on a screens on a variety mediums
- ie. web pages, java applications, windows app, etc. the values for
these fields will come from my database
| |
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 (functions are in
dll of course, etc.).
But under Win 98 my program (without any communicates) execute normal,
but not working at all.
|
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 IE browser is
open. I learnt that SetWindowsHookEx must be used along with few
others. But my doubt is how to call my application? Can i implement the
keyboard hooks related methods in the same project as my application or
should this be else...
|
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 stop that part of the program
Ty in advance
Mague
|
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 websites, much
like a "Net Nanny" would restrict children from accessing certain
video games or adult websites. In my very limited experience, System
Hooks and Win32 coding could be used to accomplish this in XP. I had
a lot of trouble learning what...
|
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: 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, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed.
This is as boiled down as I can make it.
Here is my compilation command:
g++-12 -std=c++20 -Wnarrowing bit_field.cpp
Here is the code in...
| |
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth.
The Art of Business Website Design
Your website is...
|
by: Hystou |
last post by:
Overview:
Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
|
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
|
by: isladogs |
last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM).
In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules.
He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms.
Adolph will...
|
by: conductexam |
last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one.
At the time of converting from word file to html my equations which are in the word document file was convert into image.
Globals.ThisAddIn.Application.ActiveDocument.Select();...
|
by: TSSRALBI |
last post by:
Hello
I'm a network technician in training and I need your help.
I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs.
The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols.
I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
| |
by: adsilva |
last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
|
by: 6302768590 |
last post by:
Hai team
i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
| |