Skip to content

There are some hooks to work with Windows functions

Hooks

Name
ClipboardHook
KeyboardHook
SystemMenuHook

ClipboardHook

Methods and Events

MethodEvent
StartContentChanged
Stop

Case

ClipboardHook.Start();
ClipboardHook.Stop();
ClipboardHook.ContentChanged +=ClipboardHook_ContentChanged;
private void ClipboardHook_ContentChanged()
  {
  }

KeyboardHook

Methods and Events

MethodEvent
StartKeyDown
StopKeyUp

Case

KeyboardHook.Start();
KeyboardHook.Stop();
KeyboardHook.KeyDown +=KeyboardHook_KeyDown;
private void KeyboardHook_KeyDown(object sender, HandyControl.Data.KeyboardHookEventArgs e)
  {
  }

SystemMenuHook

With this hook you can add a new item to the context menu Or display your Custom context menu

Methods and Events

MethodEvent
InsertClick
InsertSeperator
Remove
SetCustomContextMenu

Case

Add Items to ContextMenu

WARNING

Put this code on WindowLoaded Event

SystemMenuHook.Insert(0, 1000, "Item 1", this);
SystemMenuHook.InsertSeperator(1, this);
SystemMenuHook.Remove(1000);

WARNING

if you want to handle click event, you need to create click event

SystemMenuHook.Click += SystemMenuHook_Click;
private void SystemMenuHook_Click(int obj)
        {
            switch (obj)
            {
                case MenuId:
                    MessageBox.Show("Hello");
                    break;
                
            }
        }

Display your Custom ContextMenu [Available Only in Custom Version]

first add a ContextMenu to your window resource with a Key

<hc:Window.Resources>
        <ContextMenu x:Key="systemMenu">
            <MenuItem Header="Help"/>
            <MenuItem Header="Choose theme"/>
            <MenuItem Header="Add Note"/>
            <Separator />
            <MenuItem Header="Exit"/>
        </ContextMenu>
    </hc:Window.Resources>

then

WARNING

Put this code on WindowLoaded Event

var context = Resources["systemMenu"] as ContextMenu;
SystemMenuHook.SetCustomContextMenu(this, context);

Released under the MIT License.