Как отключить мышку?

165
22 мая 2019, 21:20

Начну с того, что я конкретно хочу сделать: Иногда совсем не хочется вставать с кровати но при этом вырубить монитор здесь и сейчас. Я хочу сделать маленькую программу, которая выключает монитор при запуске и включает его по нажатию ЛЮБОЙ клавиши на клавиатуре, но запретит включание по ивентам мышки.

Собственно, код выключания/включания монитора есть:

private int SC_MONITORPOWER = 0xF170;
private uint WM_SYSCOMMAND = 0x0112;
[DllImport("user32.dll")]
static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
enum MonitorState
{
    ON = -1,
    OFF = 2,
    STANDBY = 1
}
private void SetMonitorState(MonitorState state)
{
    Form frm = new Form();
    SendMessage(frm.Handle, WM_SYSCOMMAND, (IntPtr)SC_MONITORPOWER, (IntPtr)state);
}

Ну и само использование:

SetMonitorState(MonitorState.OFF);
SetMonitorState(MonitorState.ON);

Вся проблема в том, что ЛЮБОЕ нажатие клавиши или шевеление мышкой монитор включает обратно.

У меня есть 2 предположения куда можно смотреть:

  • хуки мышки (поверхностно просмотрел, но не понял как с ними это сделать или как отключить только мышку, но не клавиатуру)
  • банально отключить сам USB девайс мышки а включить как только экран перейдет в робочий режим.

То есть вопроса два:

  1. Хук в даном случае поможет? Или система будет все равно врубать мониторы?
  2. ЕСЛИ ПОМОЖЕТ, то может ли кто кинуть пример кода, а то я что-то не вкурил как работать с хуками в даном случае =(
READ ALSO
Как копию сайта перенести на новый домен и на новую админку?

Как копию сайта перенести на новый домен и на новую админку?

Подскажите пожалуйста, как копию сайта Drupal перенести на новый домен и новую админку?

125
Не выводит значение mysql_insert_id()

Не выводит значение mysql_insert_id()

В базу добавляется строка с AUTO INCREMENT, нужно получить последний IDС функцией mysqli_insert_id() мне выводит пустоту, никаких значений

112
Как данные введенные на форму отправить на базу данных

Как данные введенные на форму отправить на базу данных

Что сделал неправильно? И как сделать, чтобы id, которые будут совпадать не будет добавляться?

129