0 / 0 / 0
Регистрация: 21.09.2010
Сообщений: 32

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

21.09.2010, 17:16. Показов 9801. Ответов 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,979
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] Breadth-First Search
alhaos 19.05.2026
BFS (Breadth-First Search) — это базовый алгоритм обхода графа в ширину, который поуровнево исследует все связанные вершины. Он начинает с выбранной точки и проверяет всех соседей, прежде чем. . .
[golang] Алгоритм «Хак Госпера»
alhaos 17.05.2026
Алгоритм «Хак Госпера» Хак Госпера (Gosper's Hack) — алгоритм нахождения следующего по величине числа с тем же количеством установленных бит. Придуман Биллом Госпером в 1970-х, опубликован в. . .
Рисование бинарного древа до 6-го колена на js, svg.
russiannick 17.05.2026
<svg width="335" height="240" viewBox="0 0 335 240" fill="#e5e1bb"> <style> <!]> </ style> <g id="bush"> </ g> </ svg> function fn(){ let rost;/ / высота древа let xx=165,yy=210,w=256;
FSharp: interface of module
DevAlt 16.05.2026
Интерфейс модуля F# позволяет управлять доступностью членов, содержащихся в реализации модуля. По-умолчанию все члены модуля доступны: module Foo let x = 10 let boo () = printfn "boo" . . .
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции. <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible". . .
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru