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

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

21.09.2010, 17:16. Показов 9824. Ответов 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,980
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
Ответ Создать тему
Новые блоги и статьи
[golang] Конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
alhaos 10.06.2026
Задача Реализовать конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов. Сигнатура func Fetch(urls string, maxConcurrent int) Result Пример urls :=. . .
[golang] Состояние гонки (race condition)
alhaos 10.06.2026
Состояние гонки (race condition) Состояние гонки (Race Condition) — это ошибка, возникающая при одновременном доступе нескольких горутин к одним и тем же данным без должной синхронизации. При этом. . .
Взрослые отношения, и почему они не получаются
kumehtar 09.06.2026
Когда в детстве ребёнок не получает от родителей чего-то важного, он лишается не просто приятных переживаний, а основы для формирования определённых внутренних качеств и навыков. Если ребёнок не. . .
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool Worker Pool — паттерн конкурентной обработки задач в Go. Суть: фиксированное количество горутин-воркеров читают задачи из общего канала и пишут результаты в общий канал результатов. . . .
[golang] Pipeline
alhaos 08.06.2026
Pipeline Pipeline — паттерн конкурентной обработки данных в Go. Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь lIs4oanZS9Y
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу. До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru