Если это все еще актуально, тогда простой способ навсегда заблокировать компьютер без использования хуков состоит в следующем:
Сначала создайте обработчик событий Form_LostFocus.Это не в окне свойств-> событий, поэтому вам придется добавить его программно:
this.LostFocus += new ...
Это вызывается, когда объект from теряет фокус, поэтому здесь нам нужно вернуть фокус обратноформа:
this.Focus();
this.Activate();
Этот метод работает лучше всего, если затем фокусируется на элементе управления в форме:
textBox1.Focus();
Затем добавьте таймер с интервалом 100 мс ивключить его.Этот таймер проверит, находится ли форма в фокусе, а если нет, даст ей фокус:
// in the Tick Eventhandler
if (!this.Focused)
this.Focus();
Это будет эффективно гарантировать, что независимо от того, что ваш пользователь пытается сделать, программа всегда будет красть фокус - дажеесли он открывает диспетчер задач.
Затем просто сделайте программу полноэкранной: установите для свойства TopMost значение true.Установите «WindowState» на «развернутый».Установите для FormBorderStyle значение «Нет».
Наконец, обработайте обработчик событий Form_Closing.
// Global boolean value - set this to true when
// the user has completed the set tasks
boolean complete = false;
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (!complete)
e.cancel = true;
}
Обратите внимание: В общем, кража фокуса крайне плохая практика.