using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;


namespace Keys
{
    public partial class Form1 : Form
    {
        /// <summary>
        /// Функция имитирует нажатия клавиш на клавиатуре
        /// </summary>
        /// <param name="bVk">Виртуальный код клавиши для имитации нажатия и отпускания клавиши</param>
        /// <param name="bScan">Зарезервировано - установлено в 0</param>
        /// <param name="dwFlags">Флаг</param>
        /// <param name="dwExtraInfo">Дополнительная информация</param>
        [DllImport("coredll.dll", CharSet = CharSet.Unicode)]
        public static extern void
        keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);

        // константа для кнопки выключения устройства
        public const int VK_OEM_8 = 0xDF;

        // константа для кнопки End
        public const int VK_F4 = 0x73;

        // Флаг отпускания клавиши
        public const int KEYEVENTF_KEYUP = 0x0002;

        
        public Form1()
        {
            InitializeComponent();
            #if DEBUG
                MinimizeBox = false;
            #else
                MinimizeBox = true;
            #endif
        }

 
        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if ((e.KeyCode == System.Windows.Forms.Keys.Up))
            {
                label1.Text = "Клавиша Вверх";
            }
            if ((e.KeyCode == System.Windows.Forms.Keys.Down))
            {
                label1.Text = "Клавиша Вниз";
            }
            if ((e.KeyCode == System.Windows.Forms.Keys.Left))
            {
                label1.Text = "Клавиша Влево";
            }
            if ((e.KeyCode == System.Windows.Forms.Keys.Right))
            {
                label1.Text = "Клавиша Вправо";
            }
            if ((e.KeyCode == System.Windows.Forms.Keys.Enter))
            {
                label1.Text = "Клавиша Enter";
            }
        }

        private void butOff_Click(object sender, EventArgs e)
        {
            // Имитируем нажатие кнопку выключения устройства
            keybd_event(VK_OEM_8, 0, 0, 0);
        }

        private void butKeyEnd_Click(object sender, EventArgs e)
        {
            // имитируем нажатие и отпускание кнопки End
            keybd_event(VK_F4, 0, 0, 0);
            keybd_event(VK_F4, 0, KEYEVENTF_KEYUP, 0);
        }
    }
}