Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.90/49: Рейтинг темы: голосов - 49, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 21.09.2010
Сообщений: 32

Как узнать заблокирован ли компьютер

21.09.2010, 17:16. Показов 9605. Ответов 59
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Мне нужно узнать, заблокирован ли компьютер. То есть находится ли система в состоянии блокировка.
Один из способов такой блокировки: ctrl+alt+del -> блокировка.
Я нашол статью http://support.microsoft.com/kb/310153#top.
К сожалению у меня выдает ошибку:
fastuserswitching\fastuserswitching.cpp( 4) : fatal error C1083: Cannot open precompiled header file: 'Debug/FastUserSwitching.pch': No such file or directory
Error executing cl.exe.
Всю инструкцию я проделал в новом проекте.
Работаю в Visual 6.
Помогите разобраться.
Заранее спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.09.2010, 17:16
Ответы с готовыми решениями:

Узнать заблокирован ли компьютер?
Здравствуйте! У меня возникла проблемка. Нужно определять заблокирован ли компьютер. Нашел вот такую функцию: function...

Компьютер заблокирован, но как то странно
Здравствуйте! Только вчера купила новый ноут с Windows8, сразу поставила лицензионный антивирусник. Вчера всё было нормально, а сегодня...

Как узнать заблокирован байт или он свободен
1С-ка при запуске заводит в файле запись юзера и блочит байт на 2 мильёна вперед и это есть флаг того, что юзеор активен.... как мне...

59
Эксперт С++
 Аватар для Andrew_Lvov
261 / 191 / 10
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
26.09.2010, 00:01
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от imAlex Посмотреть сообщение
Данный код-декларация потписывается у системы на получение сообщений о блокировке системы, logIn, logUot User. Так вот как теперь эти сообщения отловить или передать в маин. Мне необходимо, чтоб при появлении такого сообщения в фаил записывались разные данные.
Спасибо за проявленный интерес.
Расплывчатость описаний не даёт мне возможности утверждать, что мы говорим об одном и том же.
В коде есть процедура окна, WndProc.
Она обрабатывает все сообщения, приходящие от системы (Windows Messages).
В такой конструкции, как switch блок происходит обработка всех сообщений, поступающих данному окну либо, если это главное окно процесса, данному процессу.
Подписыватся на сообщения необходимости нет, Windows рассылает сообщения о переходе в тот же hibernation и т.п. всем процессам по умолчанию.
0
0 / 0 / 0
Регистрация: 21.09.2010
Сообщений: 32
27.09.2010, 13:19  [ТС]
Что означают следующие ошибки:
"FastUserSwitching.exe": Загружено: "D:\InOut\FastUserSwitching2\FastUserSwi tching\Debug\FastUserSwitching.exe", Символы загружены.
"FastUserSwitching.exe": Загружено: "C:\WINDOWS\system32\ntdll.dll", Невозможно найти или открыть файл PDB
"FastUserSwitching.exe": Загружено: "C:\WINDOWS\system32\kernel32.dll", Невозможно найти или открыть файл PDB
"FastUserSwitching.exe": Загружено: "C:\WINDOWS\system32\user32.dll", Невозможно найти или открыть файл PDB
"FastUserSwitching.exe": Загружено: "C:\WINDOWS\system32\gdi32.dll", Невозможно найти или открыть файл PDB
"FastUserSwitching.exe": Загружено: "C:\WINDOWS\system32\wtsapi32.dll", Невозможно найти или открыть файл PDB
"FastUserSwitching.exe": Загружено: "C:\WINDOWS\system32\msvcrt.dll", Невозможно найти или открыть файл PDB
"FastUserSwitching.exe": Загружено: "C:\WINDOWS\system32\winsta.dll", Невозможно найти или открыть файл PDB
"FastUserSwitching.exe": Загружено: "C:\WINDOWS\system32\netapi32.dll", Невозможно найти или открыть файл PDB
"FastUserSwitching.exe": Загружено: "C:\WINDOWS\system32\advapi32.dll", Невозможно найти или открыть файл PDB
"FastUserSwitching.exe": Загружено: "C:\WINDOWS\system32\rpcrt4.dll", Невозможно найти или открыть файл PDB
"FastUserSwitching.exe": Загружено: "C:\WINDOWS\system32\secur32.dll", Невозможно найти или открыть файл PDB
"FastUserSwitching.exe": Загружено: "C:\WINDOWS\system32\msvcr100d.dll", Символы загружены.
"FastUserSwitching.exe": Загружено: "C:\WINDOWS\system32\guard32.dll", Невозможно найти или открыть файл PDB
"FastUserSwitching.exe": Загружено: "C:\WINDOWS\system32\version.dll", Невозможно найти или открыть файл PDB
"FastUserSwitching.exe": Загружено: "C:\WINDOWS\system32\fltlib.dll", Невозможно найти или открыть файл PDB
0
Эксперт С++
 Аватар для Andrew_Lvov
261 / 191 / 10
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
27.09.2010, 13:59
http://msdn.microsoft.com/ru-r... f8bd1.aspx
0
0 / 0 / 0
Регистрация: 21.09.2010
Сообщений: 32
27.09.2010, 14:59  [ТС]
Цитата Сообщение от Andrew_Lvov Посмотреть сообщение
Расплывчатость описаний не даёт мне возможности утверждать, что мы говорим об одном и том же.
В коде есть процедура окна, WndProc.
Она обрабатывает все сообщения, приходящие от системы (Windows Messages).
В такой конструкции, как switch блок происходит обработка всех сообщений, поступающих данному окну либо, если это главное окно процесса, данному процессу.
Подписыватся на сообщения необходимости нет, Windows рассылает сообщения о переходе в тот же hibernation и т.п. всем процессам по умолчанию.
Хорошо. В таком случае как мне получить это сообщение. Насколько я понял то, что Вы написали, система само отсылает сообщение всем, в том числе и моей проге, как только юзер заблокирует комп или завершит сеанс.
Так как мне его получить?
Например винда рассылает всем сообщение userLock. Я его получаю в MessageBox, тогда мне необходимо, чтобы как только это сообщение пришло, происходило следующее:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
if (MessageBox="userLock")//если система заблокирована
{
FILE *file;
        char load_string[50] = "none";
        file = fopen( file_name, "a" );
        textFile="userLock";
        fputs(textFile, file );
        fclose( file );
        return 0;
}
if (MessageBox="userOut")//если сеанс завершён
{
FILE *file;
        char load_string[50] = "none";
        file = fopen( file_name, "a" );
        textFile="userOut";
        fputs(textFile, file );
        fclose( file );
        return 0;
}
0
Эксперт С++
 Аватар для Andrew_Lvov
261 / 191 / 10
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
27.09.2010, 15:34
Цитата Сообщение от imAlex Посмотреть сообщение
if (MessageBox="userLock")
messagebox - это адрес функции. Ему нельзя ничего присвоить.

C++
1
2
3
4
5
6
7
8
9
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
...
case WTS_SESSION_LOCK:
  // do your things here
  ...
  break;
...
}
http://msdn.microsoft.com/en-u... S.85).aspx
0
0 / 0 / 0
Регистрация: 21.09.2010
Сообщений: 32
27.09.2010, 16:05  [ТС]
У меня прога закрывается раньше чем я успеваю заблокировать сеанс.

Добавлено через 10 минут
Я попробовал в кейсе прописать вызов процедуры, которая записывает в файл текст, то ничего не записалось
C++
1
2
3
4
5
6
7
case WTS_SESSION_LOCK:
                 MessageBox(hWnd, TEXT("WTS_SESSION_LOCK"), 
                            TEXT("WM_WTSSESSION_CHANGE"), MB_OK );
                 ttt="WM_WTSSESSION_LOCK";
                 FileS(ttt);
                 printf("WM_WTSSESSION_LOCK");
                 break;
0
Эксперт С++
 Аватар для Andrew_Lvov
261 / 191 / 10
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
27.09.2010, 17:10
О, пардон, был не прав.
Сначала окно регистрируется на получение сообщений с помощью WTSRegisterSessionNotification.
Дальше надо ловить сообщение WM_WTSSESSION_CHANGE и проверять wParam. Если он равен WTS_SESSION_LOCK - значит это нужный ивент.
0
0 / 0 / 0
Регистрация: 21.09.2010
Сообщений: 32
27.09.2010, 17:14  [ТС]
А как это сделать?
0
Эксперт С++
 Аватар для Andrew_Lvov
261 / 191 / 10
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
27.09.2010, 17:17
Цитата Сообщение от imAlex Посмотреть сообщение
А как это сделать?
Открываешь гугл, ищешь первое ключевое слово, потом второе, ищешь примеры кода. А вообще, я бы советовал поискать, как вообще программа работает с WinAPI.
0
0 / 0 / 0
Регистрация: 21.09.2010
Сообщений: 32
27.09.2010, 18:45  [ТС]
Andrew_Lvov, не могу понять как это работает.
Умоляю, допишите код. Мне кажется это не должно занять много времени.
Мне позарез необходимо дописать эту программу.
Я все исходники скину в нет, людям пользоваться. По идее программа хорошая, а главное нужная должна получиться.
Она состоит из exe-шника (который все никак не дописать), и php+JS. Результат отображается на сайте, есть возможность фильтрации по имени юзера, дате и компу.
Та часть, которая создает и заполняет php-include, практически готова, осталось добавить туда сессии юзеров.
0
0 / 0 / 0
Регистрация: 21.09.2010
Сообщений: 32
07.10.2010, 12:28  [ТС]
Ребят, прошу прощения, что слегка не по теме, но есть ли в с++ функция, которая заменяет текст или строку в файле(например в *.txt)?
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
07.10.2010, 13:21
Цитата Сообщение от imAlex Посмотреть сообщение
Ребят, прошу прощения, что слегка не по теме, но есть ли в с++ функция, которая заменяет текст или строку в файле(например в *.txt)?
Читаете файл в буфер, правите содержимое буфера и пишите обратно в файл.
0
0 / 0 / 0
Регистрация: 21.09.2010
Сообщений: 32
08.10.2010, 10:07  [ТС]
но он тогда дописывает, а мне по сути надо заменить, то есть есть строка, которая начинается например со слова ПРИВЕТ, я ее нахожу, затем мне необходимо ее стереть и на ее место вписать ДО СВИДАНИЕ.

Добавлено через 2 часа 25 минут
я тут нашел статейку http://www.cyberguru.ru/cpp-so... fajle.html. этот код действительно ищет нужный текст и даже заменяет его, но вот только на какую то ерунду. никак не могу понять, в каком месте он это делает?

Добавлено через 15 часов 50 минут
Кто знает, в какой последовательности загружаются приложения при входе пользователя в систему? Можно ли эту последовательность определять самостоятельно? В какой момент система отправляет сообщение о том, что пользователь залогинился?
0
0 / 0 / 0
Регистрация: 21.09.2010
Сообщений: 32
18.10.2010, 15:36  [ТС]
Всем привет.
Дописал программу, запустил на другом компе и прога сразу вылетела. Пишет, что не может найти msvcp100d.dll. Кто знает, с чем может быть связано такое сообщение?
0
Эксперт С++
 Аватар для Andrew_Lvov
261 / 191 / 10
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
18.10.2010, 18:16
imAlex, компилили debug или release ?
Нужно либо делать static library linkage, либо инсталлировать на требуемом компе Visual Studio Runtime.
0
0 / 0 / 0
Регистрация: 21.09.2010
Сообщений: 32
18.10.2010, 18:19  [ТС]
Andrew_Lvov, а можно чуть по подробнее про оба способа и чем они грозят.
0
Эксперт С++
 Аватар для Andrew_Lvov
261 / 191 / 10
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
18.10.2010, 18:22
imAlex, насколько я помню, msvcp100d.dll - это debug библиотека. Её в любом случае не будет на другом компе, где нет самой студии. Потому только release.
Кроме того, в debug отключена оптимизация, много лишних данных, нужных только для дебага.
0
0 / 0 / 0
Регистрация: 21.09.2010
Сообщений: 32
18.10.2010, 18:27  [ТС]
так а как делать static library linkage? Это надо по всем подключенным библиотекам пройтись и скопировать необходимые куски?
0
Эксперт С++
 Аватар для Andrew_Lvov
261 / 191 / 10
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
18.10.2010, 18:30
Project Properties->C++->Code Generation->Runtime Library = "Multi Threaded /MT"
1
0 / 0 / 0
Регистрация: 21.09.2010
Сообщений: 32
18.10.2010, 18:44  [ТС]
Огромное спасибо!!!!
Сработало. Прога работает
УРРАААА!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.10.2010, 18:44
Помогаю со студенческими работами здесь

Как узнать принадлежит ли компьютер к домену по IP?
Первая просьба к "экспертам" данного форума. Дочитать этот текст до конца, а не сразу вываливать десяток бессмысленных ссылок, которые...

Как узнать скорость интернета через компьютер
Уважаемые пользователи этого форума, подскажите пожалуйста, как узнать скорость интернета через компьютер!

Как узнать, поддерживает ли компьютер технологию TSC?
Добрый вечер ребятки. В общем: Нужно узнать поддерживает ли мой пк технологию TSC(счетчик меток реального времени). Погуглив смог найти...

Как узнать, откуда компьютер получает интернет?
подскажите, как узнать откуда компьютер получает интернет? или хотя бы как узнать стоит ли галочка "Использовать прокси"

Как узнать, что компьютер пингуют в данный момент?
Всем добрый день! команда ping - это значит что я отправляю "пакеты" на какой-то IP а как я могу узнать что мне приходят такие...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru