Как узнать заблокирован ли компьютер
Мне нужно узнать, заблокирован ли компьютер. То есть находится ли система в состоянии блокировка.
Один из способов такой блокировки: ctrl+alt+del -> блокировка.
Заранее спасибо.
В прикрепленном файле обсуждаемая, рабочая программа. Написано в VS10. Имеется скомпилированный файл.
Она выдает сообщение когда пользователь меняет свое состояние(login, logout, lock, unlock). Все эти сообщения действительно отображаются. Дла того, чтоб убедится в этом, необходимо запустить программу, сменить пользователя(быстрый переход), или заблокировать (WIN + L). по возвращению к пользователю, запустившему приложение, вы увидите сообщения.
При ее дальнейшей настройке я задался вопросами:
В какой последовательности загружаются приложения при входе пользователя в систему? Можно ли эту последовательность определять самостоятельно? В какой момент система отправляет сообщение о том, что пользователь залогинился(относительно запускаемых приложений в сессии)?
Я вот нашел несколько способов добавить приложение в автозагрузку
http://argon.com.ru/windows/other/autorunsecrets и http://www.cyberguru.ru/operating-systems/windows-xp/windowsxp-sequrity-tuning-page3.html, но к сожалению это не дало никаких результатов. То есть это никаким образом не дает ответы на поставленные вопросы. Для тех у кого нет времени читать всю статью: Основные способы авто запуска это добавление приложения в одноименную папку, создание задачи через панель управления, добавление записей в реестр
и
(разница между ними в том, что в первом случаи приложение запустится от имени администратора и до загрузки пользователя, а второй способ при загрузке пользователя под его именем. Тут кстати есть проблема, опишу ее позже.), также существуют способы так называемые "Неявные способы автозагрузки", но нас они не интересуют.
Так вот, в чем же проблема? При запуске приложения через HKLM... оно:
а) запускается от имени админа;
б) запускается с низким приоритетом.
Возможно есть еще тонкости, но я пока читал только про эти. Меня не устраивает данный вариант, т.к. такому приложению не отправляется сообщения от системы.
Остальные варианты запускают приложение посли загрузки пользователя.. соответственно тоже облом.
Так вот, кто знает другие способы или как настроить порядок загрузки?
Дописал программу, запустил на другом компе и прога сразу вылетела. Пишет, что не может найти msvcp100d.dll. Кто знает, с чем может быть связано такое сообщение?
Как ты считаешь - что можно подумать о человеке, который свой вопрос формулирует следующим образом - "мне говорят, что этого здесь нет, с чем связанно это сообщение?". Вопрос на вскидку - IQ этого человека более 70?
А вообще эта DLL поставляется в комплекте Visual C++ 2010 reistributable(или как его там).Поэтому клиенту надо ставить этот пакет
Попробую найти и поставить (если он не тяжёлый, ато компы слабоватые):)
Project Properties->C++->Code Generation->Runtime Library = "Multi Threaded /MT"