Отправка сообщения Ctrl + Alt + Del из моего приложения - PullRequest
2 голосов
/ 28 февраля 2009

Я хочу написать небольшую утилиту в MFC, которая отправляет в ОС сообщение Ctrl + Alt + Del Кто-нибудь может мне помочь, как мне этого добиться? Я попробовал:

::PostMessage(HWND_BROADCAST, WM_HOTKEY, 0, MAKELONG( MOD_CONTROL | MOD_ALT, VK_DELETE));

Но это не работает.

Я хочу отправить Ctrl + Alt + Del , чтобы не вызывать TaskMgr.exe. Кроме того, это для моей локальной ОС (Windows XP Service Pack 2). По сути, я хочу использовать это приложение, чтобы заблокировать мой компьютер и запланировать некоторые действия вместе с блокировкой.

Ответы [ 7 ]

5 голосов
/ 28 февраля 2009

Это не нажатие клавиши, которое вы можете симулировать. Это называется «Безопасная последовательность внимания». Вот как это вызвать ИЗ УДАЛЕННОГО НАСТОЛЬНОГО СТОЛА (решение XP +):

include <shldisp.h>

IShellDispatch4 *pShell;

CoInitialize(NULL);

HRESULT hr = CoCreateInstance(CLSID_Shell, NULL, CLSCTX_INPROC_SERVER,
IID_IShellDispatch, (void**)&pShell);

if(SUCCEEDED(hr))
pShell->WindowsSecurity();

CoUninitialize();

Единственное решение вызвать его с локального рабочего стола - это использовать SASLib. Это не публично. Напишите записку на saslib@microsoft.com, чтобы запросить ее.

РЕДАКТИРОВАТЬ: Подождите! Вы хотите заблокировать машину? Просто позвоните LockWorkStation () ! Нажмите на ссылку для получения дополнительной информации о заголовочном файле, файле lib и других подробностях.

2 голосов
/ 28 февраля 2009

Вам нужно отправить control + alt + delete или вы просто хотите вызвать диспетчер задач?

Если вам просто нужно вызвать диспетчер задач, вы можете просто запустить \ Windows \ System32 \ taskmgr.exe

2 голосов
/ 28 февраля 2009

Поскольку VNC может позволить вам сделать это с удаленной системой, это должно быть возможно. Если бы я был тобой, я бы прошел через источник к UltraVNC . Тогда я бы опубликовал ответ здесь:)

1 голос
/ 06 октября 2010

Я знаю, что это старые вопросы, но я публикую свои решения здесь, если кто-то ищет решение, прибывает сюда. В статьях part1 и part2 объясняется, как Winlogon регистрирует последовательность CAD, и приводятся примеры кода по ее использованию.

0 голосов
/ 09 июля 2016

Для этого вызовите функцию SendSAS.

0 голосов
/ 01 марта 2009

Не можете ли вы запустить заставку, и она позаботится о блокировке для вас? У меня сейчас нет машины с Windows, но я помню, что можно заблокировать рабочую станцию ​​следующим образом.

0 голосов
/ 28 февраля 2009

Не проще ли попросить машину выключиться или выйти из системы? Эта комбинация клавиш не очень хорошая идея? Вы можете отправлять эти сообщения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...