Как программно отключить встроенную клавиатуру ноутбука перед входом в экран

Взятие листа от Scott Meyers, Более эффективный C++ Объект 6: Различайте префикс и снабдите постфиксом формы инкрементных и декрементных операций .

версия префикса всегда предпочитается по постфиксу в отношении объектов, особенно в отношении итераторов.

причина этого, если Вы смотрите на шаблон вызова операторов.

// Prefix
Integer& Integer::operator++()
{
    *this += 1;
    return *this;
}

// Postfix
const Integer Integer::operator++(int)
{
    Integer oldValue = *this;
    ++(*this);
    return oldValue;
}

Рассмотрение этого примера легко видеть, как префиксный оператор всегда будет более эффективным, чем постфикс. Из-за потребности во временном объекте в использовании постфикса.

Поэтому, когда Вы видите, что примеры используют итераторы, они всегда используют версию префикса.

, Но как Вы указываете для интервала, нет эффективно никакого различия из-за оптимизации компилятора, которая может произойти.

2
задан 13.05.2020, 12:33

2 ответа

Похоже, у вас есть проблемы с липкими клавишами, которые мешают вам войти в систему. (Если это правильно, тогда вы можете удалить клавиатуру с ноутбука.

Google: как удалить клавиатуру «ЗАМЕНИТЕ ЭТО БЕЗ ВАШЕГО МОДЕЛЬНОГО ИМЕНИ COUPUTER». И следуйте инструкциям , это довольно просто. В большинстве случаев вам даже не нужно выкручивать винты. Перейдите на http://www.aliexpress.com / и закажите себе новую клавиатуру для этого компьютера, и пока вы ждете ее, подключите внешнюю USB-клавиатуру к компьютеру и сможете войти в нее.

Вы должны уточнить, возможность входа в компьютер, удаленного доступа к нему через SSH или VNC. (тогда другим будет проще объяснить вам, что делать.

, если вы сможете войти в систему, вы можете попытаться открыть новый В терминале введите CTRL + ALT + T и введите

sudo nano /boot/grub/grub.cfg

Добавьте

i8042.nokbd 

в конец файла и сохраните файл

CTRL + X (введите Y) и введите

и введите

sudo update-grub

В поле erminal

-1
ответ дан 13.05.2020, 12:34
  • 1
    Это isn' t липкие ключи. Это - своего рода короткое замыкание. На самом деле у меня уже есть внешняя клавиатура и I' m способный войти в систему, но с большим усилием, нажатие ALT для предотвращения нежелательных нажатых клавиш. Соглашение с аппаратными средствами isn' t опция. – user unknown 13.05.2020, 12:35
  • 2
    i8042.nokbd shouldn' t быть добавленным до конца /boot/grub/grub.cfg файл. Это было бы синтаксической ошибкой там и будет перезаписано, как только Вы работаете sudo update-grub. Та строка должна быть добавлена к /etc/default/grub файл, в GRUB_CMDLINE_LINUX_DEFAULT= строка, так, чтобы строка считала что-то как GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i8042.nokbd", затем работать sudo update-grub. – Dan McGrath 13.05.2020, 12:35
  • 3
    Я был уверен что я уже сделанный это. Но я нашел № i8042.nokbd в этом файле. Я попробую его. – Carlos 13.05.2020, 12:35
  • 4
    Я отредактировал свой ответ, можно попытаться сделать это. – Dan McGrath 13.05.2020, 12:36
  • 5
    Положительная сторона @falconer. Я попробую Вашу подсказку, потому что это didn' t работа. – Carlos 13.05.2020, 12:36

Ну, я мог бы предложить аппаратное решение. Вы можете найти руководство для ноутбука, открыть его (отвертки и т. Д.), Найти разъем, соединяющий встроенную клавиатуру и материнскую плату ноутбука (на моем HP dv3 это было относительно просто), и отключить его. Тогда у вас больше не будет случайных нажатий клавиш. Пока вы на нем, вы можете вынуть клавиатуру и посмотреть, можно ли ее почистить, чтобы заставить ее вести себя.

Что касается программного решения, вы можете поместить xinput set-int-prop 14 "Device Enabled" 8 0 (согласно вашему текущему решению) в /etc/rc.local. Вам нужно вставить свою команду в этот файл до exit 0. Подробнее см. Можно ли выполнить команду перед входом в экран? .

0
ответ дан 13.05.2020, 12:35

Теги

Похожие вопросы