Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1] 2  Все   Вниз
  Печать  
Автор Тема: Как узнать заблокирован ли компьютер  (Прочитано 48641 раз)
0 Пользователей и 1 Гость смотрят эту тему.
imAlex
Участник

ru
Offline Offline

« : 21-09-2010 13:22 » 

Всем привет!
Мне нужно узнать, заблокирован ли компьютер. То есть находится ли система в состоянии блокировка.
Один из способов такой блокировки: 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.
Помогите разобраться.
Заранее спасибо.
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #1 : 21-09-2010 13:57 » 

Отключи precompiled header в настройках. Ща шестой студии нет под рукой, поэтому точно не скажу. Внимательно посмотри на ключевое слово "precompiled header".
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
imAlex
Участник

ru
Offline Offline

« Ответ #2 : 21-09-2010 15:05 » 

Огромное спасибо. Помогло.
Вот только теперь выводит ошибки:
Цитата
warning C4067: unexpected tokens following preprocessor directive - expected a newline
fatal error C1083: Cannot open include file: 'wtsapi32.h': No such file or directory
Ругается на строчки:
Цитата
#include <wtsapi32.h><?xm-insertion_mark_start author="v-bobbid" time="20080319T141447-0800"?>
#pragma comment(lib,"WtsApi32.lib") <?xm-insertion_mark_end?>
wtsapi32.h-это стандартная библиотека?

Добавлено через 7 минут и 12 секунд:
еще..
Может мой вопрос звучит совсем глупо, но тем не менее: Что может означать- "Add Wtsapi32.lib to the project's library list."? Должен же быть выход!!! Я понимаю что написано Добавить Wtsapi32.lib в проект в лист библиотек, но куда это, да и что- это просто пустая библиотека?
Еще раз извиняюсь за просьбу объяснить мне чужие мысли.
« Последнее редактирование: 21-09-2010 15:12 от imAlex » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #3 : 21-09-2010 17:04 » 

imAlex, прекомпиленные отключать не надо, просто закрой проект, замочи файлы *ncb, *opt, *.clw и папку debug. Затем скомпилируй заново

Добавлено через 2 минуты и 6 секунд:
а если действительно же отключать прекомпиленные, то не забыть вставить в начало каждого cpp файла

#include "stdafx.h"

сам этот файл можно оставить пустым, но без него студия не может  Улыбаюсь)
« Последнее редактирование: 21-09-2010 17:06 от Алексей1153 » Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #4 : 22-09-2010 08:12 » 

Огромное спасибо. Помогло.
Вот только теперь выводит ошибки:
Цитата
warning C4067: unexpected tokens following preprocessor directive - expected a newline
fatal error C1083: Cannot open include file: 'wtsapi32.h': No such file or directory
Ругается на строчки:
Цитата
#include <wtsapi32.h><?xm-insertion_mark_start author="v-bobbid" time="20080319T141447-0800"?>
#pragma comment(lib,"WtsApi32.lib") <?xm-insertion_mark_end?>
wtsapi32.h-это стандартная библиотека?

#pragma comment(lib,"WtsApi32.lib") - означает, что будешь использовать статически компилируемую в твой проект системную (а не стандартную) библиотеку WtsApi32, для этого ессно нужно знать где находится она и относящийся к ней заголовочный файл: WtsApi32.h и WtsApi32.lib. Поищи на своём компе где-нить в студийной папке. Если её там нет, тебе нужно будет скорей всего поставить платформу SDK (это лучше сделать в любом случае, она даст тебе все необходимые файлы системных библиотек и хедеры к ним). После этого необходимо либо явно указать путь к этим файлам, либо внести пути к ним в настройки студии (опять же точно в 6ой не помню, вроде где-то в Options), там должны быть пути к lib файлам, h-файлам и тд.

еще..
Может мой вопрос звучит совсем глупо, но тем не менее: Что может означать- "Add Wtsapi32.lib to the project's library list."? Должен же быть выход!!! Я понимаю что написано Добавить Wtsapi32.lib в проект в лист библиотек, но куда это, да и что- это просто пустая библиотека?

Это означает "Добавить Wtsapi32.lib в список библиотек проекта". Это не пустая библиотека. Это системная библиотека, ф-ции которой ты юзаешь. Ессно исходники этих ф-ций в виде кода ты не видишь, для этого нужна библиотека. В С++ ты обычно объявляешь ф-ю в h-файле, а потом определяешь её тело в срр-файле. Здесь происходит практически тоже самое, в h-файле они объявлены и ты должен включить этот файл в свой проект, а сами ф-ции, уже откомпилированные, находятся в файле lib, вместо cpp. Поэтому тебе тоже надо включить его в проект.

Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
imAlex
Участник

ru
Offline Offline

« Ответ #5 : 23-09-2010 09:23 » 

Спасибо за внимание.
Цитата
Это означает "Добавить Wtsapi32.lib в список библиотек проекта". Это не пустая библиотека. Это системная библиотека, ф-ции которой ты юзаешь. Ессно исходники этих ф-ций в виде кода ты не видишь, для этого нужна библиотека. В С++ ты обычно объявляешь ф-ю в h-файле, а потом определяешь её тело в срр-файле. Здесь происходит практически тоже самое, в h-файле они объявлены и ты должен включить этот файл в свой проект, а сами ф-ции, уже откомпилированные, находятся в файле lib, вместо cpp. Поэтому тебе тоже надо включить его в проект.
А как это сделать?
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #6 : 23-09-2010 09:38 » 

Что "это"?

В проект ты их уже включил. Это:

Код:
#include <wtsapi32.h>[code]
и

Код:
#pragma comment(lib,"WtsApi32.lib")

Обычно <> кавычки в #include, вместо "", указывают на путь оговоренный в настройках студи. Ну нет у меня ща под рукой шестёрки (и, судя по всему, я не одинок, даже Лёшка чёт молчит, хотя с шестёркой его ничто разлучить не может).

Поищи. Где у тебя пути, например, к MFC прописаны? Там должен быть такой комбобокс для выбора путей различных типов ресурсов. Самая "старая" у меня - 2003-я, вот как это выглядит в ней:


[/code]

* ss1.gif (14.13 Кб - загружено 2858 раз.)
« Последнее редактирование: 23-09-2010 09:40 от Джон » Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #7 : 23-09-2010 10:39 » 

а что сразу Лёшка

в составе студии 6 такого файла не обнаруживаю...
в составе студии 9 тоже...
зато сразу нашлось в C:\Program Files\Microsoft SDK\include

Записан

imAlex
Участник

ru
Offline Offline

« Ответ #8 : 23-09-2010 12:03 » 

а что сразу Лёшка

в составе студии 6 такого файла не обнаруживаю...
в составе студии 9 тоже...
зато сразу нашлось в C:\Program Files\Microsoft SDK\include


А можешь мне его скинуть.

Добавлено через 33 минуты и 48 секунд:
Может кто нибуть проделать все по инструкции и скинуть исходник? Если нет возможности сделать на 6-ке, можно и на 10-ке. На крайняк поставлю ее. Там инструкция совсем небольшая, разбирающемуся человеку думаю минут на 5.
« Последнее редактирование: 23-09-2010 12:37 от imAlex » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #9 : 23-09-2010 15:04 » 

imAlex, установи уже SDK
http://www.microsoft.com/downloads/en/details.aspx?familyid=4D2ABC8C-8BCA-4DB9-8753-178C0D3099C5&displaylang=en

А если запробуешь студию 9 или 10 - то там уже сразу SDK вместе идёт

А отдельно от всей библиотеки один заголовочник скидывать - это как-то несерьёзно Улыбаюсь
Записан

imAlex
Участник

ru
Offline Offline

« Ответ #10 : 23-09-2010 15:59 » 

imAlex, установи уже SDK
http://www.microsoft.com/downloads/en/details.aspx?familyid=4D2ABC8C-8BCA-4DB9-8753-178C0D3099C5&displaylang=en

А если запробуешь студию 9 или 10 - то там уже сразу SDK вместе идёт

А отдельно от всей библиотеки один заголовочник скидывать - это как-то несерьёзно Улыбаюсь

Где я только заголовки скинул? Вроди все кидал. SDK поставили на меня упала целая куча ошибок.
Цитата
WTSStartRemoteControlSessionW(
__in LPWSTR pTargetServerName,
говорит мол
wtsapi32.h(859) : error C2065: '__in' : undeclared identifier
так на все подобные, затем
wtsapi32.h(852) : error C2061: syntax error : identifier '__deref_out_ecount'
На строчку
__deref_out_ecount(*pCount) PWTS_SERVER_INFOW * ppServerInfo,
, но это же стандартные. Я там ничего не менял. У меня есть пдозрения, что все дело именно в wtsapi32.h, тоесть у меня он либо для Windows 7, либо для 10-ого визуала, но другого я не нашол. Что интересно из этих факторов может влиять?

Добавлено через 6 минут и 8 секунд:
Ребята, ну хоть ктонибуть может попробовать повторить инструкцию. На 6-ке или 10-ке. Уже не важно. Может это все туфта и никогда не работало.
Я с этой декларацией уже три с половиной месяца мучаюсь.
Не скрою, на С++ только начал писать. Может от того и не получается, но мне это по зарез надо.
« Последнее редактирование: 23-09-2010 16:05 от imAlex » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #11 : 23-09-2010 16:39 » 

imAlex, да когда этим заниматься то ? Прикрепи уж проект с котовым кодом. Только из проекта удали *.ncb, папку DEBUG и RELEASE. Можешь в 6 или 9 студии - я смогу глянуть. Десятки у меня нету

Записан

imAlex
Участник

ru
Offline Offline

« Ответ #12 : 24-09-2010 07:29 » 

Алексей1153++ , огромное спасибо за ответ. Скидываю два варианта. тот что без "0" на конце, это уже с изменениями и с wtsapi32.h, а во втором необходимо заменить "h"-шник. Что, съел?

Добавлено через 7 минут и 37 секунд:
это на Visual 6

* FastUserSwitching0.rar (23.86 Кб - загружено 948 раз.)
* FastUserSwitching.rar (18.54 Кб - загружено 1002 раз.)
« Последнее редактирование: 24-09-2010 07:37 от imAlex » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #13 : 24-09-2010 08:19 » 

а что за приколы

Код:
#include "wtsapi32.h"<?xm-insertion_mark_start author="v-bobbid" time="20080319T141447-0800"?>
#pragma comment(lib,"WtsApi32.lib") <?xm-insertion_mark_end?>

....
...

#include <wtsapi32.dll>
)))

Расскажи, для чего ты это всё сделал ?
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #14 : 24-09-2010 08:42 » 

вот так пробуй. (Предполагаю, что в настройках студии ты пути к h и lib настроил и SDK установил)
 Только один момнент нерешённый остался
Код:
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/FastUserSwitching.exe : fatal error LNK1120: 1 unresolved externals
я не стал разбирать - некогда немного. Видимо, изначально проект был создан не как Win32 , а как консольный. Создай заново проект и перекидай по смыслу код

* FastUserSwitching0.rar (16.01 Кб - загружено 1644 раз.)
Записан

imAlex
Участник

ru
Offline Offline

« Ответ #15 : 24-09-2010 08:45 » 

 Да-да, ну смотри:
мне необходимо получать сообщение от системы (винды) о старте, блокировке и завершении сеанса. Я на протяжении 3.5 месяцев искал решение, и вот нашел его на сайта http://support.microsoft.com/kb/310153#appliesto, но к сожалению у меня не заработало. Там по идее необходимо всего создать новый проект аля "Hello World", и в нужные места скопировать и вставить 6 кусков кода (там все описано). Тот кусок кода, подключает библиотеку, необходимую для выполнения программы. Плииз помоги. Сделай доброе дело, выложим исходники в нет людям пользоваться. Ато я искал, натыкался на такие же требования, но нигде ничего нет.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #16 : 24-09-2010 08:50 » 

мне необходимо получать сообщение от системы (винды) о старте, блокировке и завершении сеанса.

хм, а зачем тогда вся галиматья выше ? Ибо

Код:
WM_WTSSESSION_CHANGE Message

The WM_WTSSESSION_CHANGE message notifies applications of changes in session state.

The window receives this message through its WindowProc function.


LRESULT CALLBACK WindowProc(
  HWND hWnd,       // handle to window
  UINT Msg,        // WM_WTSSESSION_CHANGE
  WPARAM wParam,   // session state change event
  LPARAM lParam    // session ID
);
Parameters
hWnd
Handle to the window.

Msg
Specifies the message (WM_WTSSESSION_CHANGE).

wParam
Status code describing the reason the session state change notification was sent. This parameter can be one of the following values.

Value Meaning
WTS_CONSOLE_CONNECT
0x1
 A session was connected to the console terminal.
 
WTS_CONSOLE_DISCONNECT
0x2
 A session was disconnected from the console terminal.
 
WTS_REMOTE_CONNECT
0x3
 A session was connected to the remote terminal.
 
WTS_REMOTE_DISCONNECT
0x4
 A session was disconnected from the remote terminal.
 
WTS_SESSION_LOGON
0x5
 A user has logged on to the session.
 
WTS_SESSION_LOGOFF
0x6
 A user has logged off the session.
 
WTS_SESSION_LOCK
0x7
 A session has been locked.
 
WTS_SESSION_UNLOCK
0x8
 A session has been unlocked.
 
WTS_SESSION_REMOTE_CONTROL
0x9
 A session has changed its remote controlled status. To determine the status, call GetSystemMetrics and check the SM_REMOTECONTROL metric.
 

lParam
The identifier of the session.

Return Value
The return value is ignored.

Remarks
This message is sent only to applications that have registered to receive this message by calling WTSRegisterSessionNotification.

Examples of how applications can respond to this message include releasing or acquiring console-specific resources, determining how a screen is to be painted, or triggering console animation effects.

Requirements
Client Requires Windows Vista or Windows XP.
Server Requires Windows Server 2008 or Windows Server 2003.
Header Declared in Winuser.h; include Windows.h.
 


то есть просто создать Win32 голимое приложение, да поймать одно сообщение в оконной процедуре. И всё
Записан

imAlex
Участник

ru
Offline Offline

« Ответ #17 : 24-09-2010 08:54 » 

не понял. Можешь разъяснить, это как?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #18 : 24-09-2010 08:56 » 

imAlex, как создать чистый Win32 проект ? Или про что ? )
Записан

imAlex
Участник

ru
Offline Offline

« Ответ #19 : 24-09-2010 08:58 » 

Это с сайта http://msdn.microsoft.com/en-us/library/aa383828%28VS.85%29.aspx.
Я не знаю куда вставить и как сформировать запрос, а точнее, на сколько я понял, как за декларировать.

Добавлено через 10 минут и 33 секунды:
вот так пробуй. (Предполагаю, что в настройках студии ты пути к h и lib настроил и SDK установил)
Блин...
Не работает.
SDK-я установил.
Выдает 83 ошибки
Цитата
c:\documents and settings\administrator\ðàáî÷èé ñòîë\fastuserswitching0\wtsapi32.h(802) : error C2065: '__in' : undeclared identifier
c:\documents and settings\administrator\ðàáî÷èé ñòîë\fastuserswitching0\wtsapi32.h(802) : error C2146: syntax error : missing ')' before identifier 'LPWSTR'
c:\documents and settings\administrator\ðàáî÷èé ñòîë\fastuserswitching0\wtsapi32.h(802) : warning C4229: anachronism used : modifiers on data are ignored
c:\documents and settings\administrator\ðàáî÷èé ñòîë\fastuserswitching0\wtsapi32.h(806) : error C2059: syntax error : ')'
c:\documents and settings\administrator\ðàáî÷èé ñòîë\fastuserswitching0\wtsapi32.h(810) : error C2146: syntax error : missing ')' before identifier 'LPSTR'
c:\documents and settings\administrator\ðàáî÷èé ñòîë\fastuserswitching0\wtsapi32.h(810) : warning C4229: anachronism used : modifiers on data are ignored
c:\documents and settings\administrator\ðàáî÷èé ñòîë\fastuserswitching0\wtsapi32.h(814) : error C2059: syntax error : ')'
« Последнее редактирование: 24-09-2010 09:09 от imAlex » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #20 : 24-09-2010 09:09 » 

да ничего присылать то не нужно. Настрой пути как показал Джон https://forum.shelek.ru/index.php/topic,25541.msg244473.html#msg244473
(include и library)

а этот файл у тебя должен быть - можешь найти его в c:\program files поиском. Но перемещать его оттуда не надо - для этого пути и настраиваются

Добавлено через 2 минуты и 39 секунд:
Цитата
c:\documents and settings\administrator\ðàáî÷èé ñòîë\fastuserswitching0\wtsapi32.h
это безобразие опятьб какое-то - я вот скинул тебе переделанный проект, ты видел там внутри файл wtsapi32.h ?
« Последнее редактирование: 24-09-2010 09:12 от Алексей1153 » Записан

imAlex
Участник

ru
Offline Offline

« Ответ #21 : 24-09-2010 09:17 » 

Дико извиняюсь. Мой косяк, я действительно добавил этот файл. Подскажи, как его не добавляя прописать в проекте?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #22 : 24-09-2010 09:20 » 

вот так

https://forum.shelek.ru/index.php/topic,25541.msg244473.html#msg244473

причём, вписанные пути перемести потом в самый верх списка
Записан

imAlex
Участник

ru
Offline Offline

« Ответ #23 : 24-09-2010 09:26 » 

а окно где вызвать?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #24 : 24-09-2010 09:39 » 

tools - options - directories
Записан

imAlex
Участник

ru
Offline Offline

« Ответ #25 : 24-09-2010 10:27 » 

sel.h откуда подключать? у меня этот файл есть в C:\Program Files\Microsoft Visual Studio 9.0\VC\include, а есть в 10-ке. ни с одним не работпет
« Последнее редактирование: 24-09-2010 10:53 от imAlex » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #26 : 24-09-2010 10:49 » 

а ты не туда вставил. Смотри - справа вверху в выпадающем списке ты выбрал library, а путь указал к инклудам

надо же к библиотекам и указать (к *.lib)

А вот этот путь, который ты ввёл, надо ввести в include
Записан

imAlex
Участник

ru
Offline Offline

« Ответ #27 : 24-09-2010 10:58 » 

Прошу прощение за редакцию предыдущего сообщения. где лежит sal.h?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #28 : 24-09-2010 11:04 » 

я не знаю, где он лежит Улыбаюсь И что делает - тоже. Ищи поиском на диске
Записан

imAlex
Участник

ru
Offline Offline

« Ответ #29 : 24-09-2010 11:14 » 

Скинь мне результаты поиска на своем компе. или сами файлы.
Результат моего поиска на картинке

* Untitled-2.gif (6.62 Кб - загружено 1088 раз.)
Записан
Страниц: [1] 2  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines