Как выполнить действие по кнопке при свернутой форме c#

346
09 декабря 2016, 08:58

Как сделать какое либо действие на клавишу ESC если программа свернута?

Answer 1

Нужно использовать WinApi функции.

  1. Импортируем либы:

    [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);`
    
  2. Добавляем поле в класс, которое будет хранить ссылку на хотекй

    const int MYACTION_HOTKEY_ID = 1;
    
  3. Регистрируем хоткей

    // Modifier keys codes: Alt = 1, Ctrl = 2, Shift = 4, Win = 8
    // Compute the addition of each combination of the keys you want to be pressed
    // ALT+CTRL = 1 + 2 = 3 , CTRL+SHIFT = 2 + 4 = 6...
    RegisterHotKey(this.Handle, MYACTION_HOTKEY_ID, 6, (int) Keys.F12);
    
  4. Ловим нажатые кнопки:

    protected override void WndProc(ref Message m) 
    {                
        if (m.Msg == 0x0312 && m.WParam.ToInt32() == MYACTION_HOTKEY_ID) 
        {                   
            // My hotkey has been typed
            // Do what you want here
            // ...
        }
        base.WndProc(ref m);
    }
    

Взял отсюда:

http://stackoverflow.com/questions/15413172/capture-a-keyboard-keypress-in-the-background

READ ALSO
Не конвертируется переменная из string в int

Не конвертируется переменная из string в int

У меня есть взятая из буфера обмена скопированная из браузера 194 и она не конвертируется, пишет

367
ASP.NET MVC свой HtmlHelper + Partial

ASP.NET MVC свой HtmlHelper + Partial

Доброго дня, друзья! Тщательно готовился перед тем как задать вопросИ вот

377
Бегущая строка в абзаце

Бегущая строка в абзаце

Помогите встроить бегущую строку в этот вот абзац

274
Кликнуть по ссылке в Webbrowser

Кликнуть по ссылке в Webbrowser

Загруженная страница содержит ссылки вида:

342