Блок Control+Alt+Delete

Как сказанный Brajeshwar: Используя border-radius css3 селектор. К настоящему времени можно подать заявку -moz-border-radius и -webkit-border-radius для Mozilla и основанных на WebKit браузеров, соответственно.

Так, что происходит с Internet Explorer?. Microsoft имеет много поведений, чтобы заставить Internet Explorer иметь некоторые дополнительные функции и получить больше навыков.

Здесь: .htc файл поведения для получения round-corners от border-radius значение в CSS. Например.

div.box {
    background-color: yellow; 
    border: 1px solid red; 
    border-radius: 5px; 
    behavior: url(corners.htc);
}

, Конечно, селектор поведения не делает допустимого селектора, но можно поместить его на другой css файл с условными комментариями (только для IE).

поведение файл

HTC

10
задан niton 16 April 2015 в 00:32
поделиться

12 ответов

Для Windows XP правильный способ сделать это - создать собственную библиотеку динамических ссылок для графической идентификации и аутентификации, или для краткости gina.dll. Вот об этом статья MSDN . Эта DLL экспортирует набор функций, которые взаимодействуют с процессом Winlogon и предоставляют пользовательский интерфейс для запросов на вход - событие Secure Action Sequence. Основной запрос на вход - это ответ ctrl-alt-delete. Стандартный файл gina.dll вызывает экран входа в систему или диалоговое окно диспетчера задач / выхода из системы. Создать свою собственную джину не так уж сложно, но для этого требуется кодирование C / C ++, а не C #, и довольно легко заставить систему не загружаться. Это не мешает людям нажимать F8 при загрузке и выбирать опцию Safe Boot, которая победила. t загрузить пользовательский gina.dll.

РЕДАКТИРОВАТЬ: Я также должен сказать, что вам не нужно реализовывать все функции, которые требуется реализовать gina, вы можете динамически загружать предыдущий gina.dll и передавать все вызовы, которые вам не интересует старый gina.dll.

РЕДАКТИРОВАТЬ 2: Этот не работает с Vista / Win7, поскольку они изменили архитектуру процесса входа в систему. В Vista / Win7 все еще можно отключить ctrl-alt-delete, но для этого нужен другой механизм - где-то есть статьи MSDN об этом.

РЕДАКТИРОВАТЬ 3: Вот ZIP-файл, содержащий исходный код для создания gina.dll Он был создан с использованием DevStudio 2005. В файле GinaInterface.cpp подробно описаны шаги, необходимые для установки новой библиотеки gina.dll. Это отключит экран приветствия и заменит его на 'press crtl-alt-del' для входа в диалог. В его нынешнем виде нет разницы между этим и стандартным gina.dll, все вызовы, связанные с gina, передаются в исходный файл gina.dll (называемый msgina.dll в папке Windows \ System32). Чтобы отключить нажатие клавиш ctrl-alt-del, обновите функцию WlxLoggedOnSAS в GinaInterface.cpp. Чтобы остановить ctrl-alt-del во время работы вашего приложения, вы можете создать именованный мьютекс (CreateMutex) и проверить его присутствие в gina.dll, остановив ctrl-alt-del, если мьютекс существует.

Чтобы остановить ctrl-alt-del во время работы вашего приложения, вы можете создать именованный мьютекс (CreateMutex) и проверить его присутствие в gina.dll, остановив ctrl-alt-del, если мьютекс существует.

Чтобы остановить ctrl-alt-del во время работы вашего приложения, вы можете создать именованный мьютекс (CreateMutex) и проверить его присутствие в gina.dll, остановив ctrl-alt-del, если мьютекс существует.

15
ответ дан 3 December 2019 в 13:13
поделиться

Я нашел очень уродливый способ сделать это (который хорошо работает). Если я открываю taskmgr.exe исключительно , то ничего не происходит , когда пользователь нажимает Ctrl + Alt + Del.

FileStream fs = new FileStream(System.IO.Path.Combine(Environment.SystemDirectory, "taskmgr.exe"), FileMode.Open, FileAccess.ReadWrite, FileShare.None);

Что мне больше всего нравится в этом решении, так это то, что оно не имеет постоянных эффектов . Например, если приложение было убито, Ctrl + Alt + Del просто снова будет работать.

Недостаток: Необходимо включить экран приветствия, иначе Windows Security будет всплывать вместо того, чтобы Windows пыталась открыть taskmgr и молча терпела неудачу. (→ Это также не сработает, если машина находится в домене, потому что нахождение в домене отключает экран приветствия.)

(Конечно, это не будет работать в Vista или W7.)

26
ответ дан 3 December 2019 в 13:13
поделиться

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

Код написан на C ++, но его будет легко перенести на C # с помощью P / Invoke.

2
ответ дан 3 December 2019 в 13:13
поделиться

I achieved a similar goal, but with a different tactic in a Time Tracker tool I whipped up. This will give you a form which takes over the screen - doesn't allow windows to appear on top of it and will shoot down task manager if it is started.

  1. Set your form TopMost = True.
  2. override the Form.OnLoad method like so:

    protected override void OnLoad(EventArgs e)
    {
     base.OnLoad(e);
     this.Location = SystemInformation.VirtualScreen.Location;
     this.Size = SystemInformation.VirtualScreen.Size;
    }
    
  3. Create a timer, with a 500 millisecond interval, which looks for, and kills "taskmgr.exe" and "procexp.exe".

  4. Override the Form.OnFormClosing:

    protected override void OnFormClosing(FormClosingEventArgs e)
    {
     if (e.CloseReason == CloseReason.UserClosing || e.CloseReason == CloseReason.FormOwnerClosing)
     {
     MessageBox.Show ("Хорошая попытка, но я так не думаю ...");
     e.Cancel = true;
     возвращение;
     }
     base.OnFormClosing (e);
    }
    
  5. Переопределение OnSizeChanged:

     защищенное переопределение недействительным OnSizeChanged (EventArgs e) {
     base.OnSizeChanged (е);
     this.WindowState = FormWindowState.Normal;
     this.Location = SystemInformation.VirtualScreen.Location;
     this.Size = SystemInformation.VirtualScreen.Size;
     this.BringToFront ();
    }
    
2
ответ дан 3 December 2019 в 13:13
поделиться

Вы также захотите заблокировать alt + F4 примерно так:

private void form_KeyDown(object sender, KeyEventArgs e) {
    if (e.KeyCode == Keys.F4 && e.Modifiers == Keys.Alt)
        e.Handled = true;
    base.OnKeyDown(e);
}
0
ответ дан 3 December 2019 в 13:13
поделиться

A very dumb solution (which assumes that the machine is dedicated your software) is to remap the Alt key (to nothing).

Drawbacks:

  • Permanent effect
  • Requires a restart/logoff to activate

Works on xp, Vista, W7.

You can use SharpKeys to remap/disable any key.

For info on what registry key SharpKey changes see this. One can also remap on a per user basis.

Warning: If you disable the Alt key and login requires you to press Ctrl+Alt+Del than you won't be able to login. :)

0
ответ дан 3 December 2019 в 13:13
поделиться

Как уже упоминали другие люди, очень сложно заблокировать Ctrl - Alt - Del , так как это фундаментальная часть Безопасность Windows.

Однако вы можете заблокировать то, что можно сделать после Ctrl - Alt - Del было выдвинуто путем добавления следующих ключей реестра.

HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Policies \ System

  • DisableTaskMgr
  • DisableChangePassword
  • DisableLockWorkstation

HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Policies No \ Ifoff

  • вы сделаете это, затем, когда вы нажмете Ctrl - Alt - Del , вы получите следующий диалог (под XP):

    alt text

    Это не дурак - доказательствоно он не позволяет пользователю выполнять некоторые базовые действия.

    Обновление : только что понял, что это также блокирует Ctrl - Shift - Esc , что Раньше я не понимал.

12
ответ дан 3 December 2019 в 13:13
поделиться

Чем вы действительно хотите заниматься? Отключить диспетчер задач ?

Hive: HKEY_CURRENT_USER
Key: Software\Microsoft\Windows\CurrentVersion\Policies\System 
Name: DisableTaskMgr
Type: REG_DWORD
Value: 1 disable

Но пользователь все равно может закрыть ваше приложение с помощью стороннего диспетчера задач.

Проприетарное приложение может «отключить Ctrl + Alt + Del» с помощью этого раздела реестра:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe, Debugger, Hotkey Disabled
2
ответ дан 3 December 2019 в 13:13
поделиться

Согласно внутренней книге Windows (4-е издание), последовательность Ctrl-Alt-Del не может быть перехвачена непривилегированными приложениями. Также сказано, что эта конкретная последовательность не может быть перехвачена и что процесс Winlogon всегда будет получать ее (стр. 529).

Я никогда не пытался это сделать, но я бы доверял книге :)

2
ответ дан 3 December 2019 в 13:13
поделиться

Альтернативное решение:

Сделайте приложение таким образом, чтобы вам не приходилось использовать клавиши alt или ctrl.

Затем выньте клавишу Ctrl (или alt) и положите бумагу на контакты.

Тада!

(просто используйте другую клавиатуру для обслуживания)

0
ответ дан 3 December 2019 в 13:13
поделиться

Интересно, можно ли установить фильтр на драйвер клавиатуры?

Я знаю, что на интерфейсах USB вы можете установить верхний или нижний фильтр для данных USB, чтобы перехватывать их по мере их поступления на компьютере, и, возможно, можно было бы применить аналогичный подход. По сути, вы можете изменять комбинации клавиш, поступающие с клавиатуры, пока работает ваше тестовое приложение.

Я нашел ключ реестра «UpperFilters», определенный для моей клавиатуры ...

Этот сниффер USB поставляется с исходным кодом, реализующим фильтр. Его можно использовать в контексте анализатора / модифицирующего фильтра клавиатуры. ( Ссылка для скачивания )

0
ответ дан 3 December 2019 в 13:13
поделиться

Я бы предложил другой способ отключения диспетчера задач, он хорошо работает в Windows 7, но только влияет на опцию диспетчера задач. Решение состоит в том, чтобы установить следующий ключ реестра на неактуальное значение, например "C:\"

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe\Debugger

Вы также можете использовать этот хак для запуска собственного диспетчера задач, просто установив ключ Debugger на полный путь вашего приложения. Я обнаружил это, проанализировав, как ProcessExplorer заменяет TaskMgr.

0
ответ дан 3 December 2019 в 13:13
поделиться