imAlex
Участник
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. Помогите разобраться. Заранее спасибо.
|
|
|
Записан
|
|
|
|
Джон
просто
Администратор
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
Участник
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 »
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
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 »
|
Записан
|
|
|
|
Джон
просто
Администратор
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
Участник
Offline
|
|
« Ответ #5 : 23-09-2010 09:23 » |
|
Спасибо за внимание. Это означает "Добавить Wtsapi32.lib в список библиотек проекта". Это не пустая библиотека. Это системная библиотека, ф-ции которой ты юзаешь. Ессно исходники этих ф-ций в виде кода ты не видишь, для этого нужна библиотека. В С++ ты обычно объявляешь ф-ю в h-файле, а потом определяешь её тело в срр-файле. Здесь происходит практически тоже самое, в h-файле они объявлены и ты должен включить этот файл в свой проект, а сами ф-ции, уже откомпилированные, находятся в файле lib, вместо cpp. Поэтому тебе тоже надо включить его в проект. А как это сделать?
|
|
|
Записан
|
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #6 : 23-09-2010 09:38 » |
|
Что "это"? В проект ты их уже включил. Это: #include <wtsapi32.h>[code]
и #pragma comment(lib,"WtsApi32.lib") Обычно <> кавычки в #include, вместо "", указывают на путь оговоренный в настройках студи. Ну нет у меня ща под рукой шестёрки (и, судя по всему, я не одинок, даже Лёшка чёт молчит, хотя с шестёркой его ничто разлучить не может). Поищи. Где у тебя пути, например, к MFC прописаны? Там должен быть такой комбобокс для выбора путей различных типов ресурсов. Самая "старая" у меня - 2003-я, вот как это выглядит в ней: [/code]
|
ss1.gif (14.13 Кб - загружено 2924 раз.)
|
« Последнее редактирование: 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."
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #7 : 23-09-2010 10:39 » |
|
а что сразу Лёшка
в составе студии 6 такого файла не обнаруживаю... в составе студии 9 тоже... зато сразу нашлось в C:\Program Files\Microsoft SDK\include
|
|
|
Записан
|
|
|
|
imAlex
Участник
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 »
|
Записан
|
|
|
|
|
imAlex
Участник
Offline
|
|
« Ответ #10 : 23-09-2010 15:59 » |
|
Где я только заголовки скинул? Вроди все кидал. 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 »
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #11 : 23-09-2010 16:39 » |
|
imAlex, да когда этим заниматься то ? Прикрепи уж проект с котовым кодом. Только из проекта удали *.ncb, папку DEBUG и RELEASE. Можешь в 6 или 9 студии - я смогу глянуть. Десятки у меня нету
|
|
|
Записан
|
|
|
|
imAlex
Участник
Offline
|
|
« Ответ #12 : 24-09-2010 07:29 » |
|
Алексей1153++ , огромное спасибо за ответ. Скидываю два варианта. тот что без "0" на конце, это уже с изменениями и с wtsapi32.h, а во втором необходимо заменить "h"-шник. Добавлено через 7 минут и 37 секунд:это на Visual 6
|
|
« Последнее редактирование: 24-09-2010 07:37 от imAlex »
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
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>
))) Расскажи, для чего ты это всё сделал ?
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
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 , а как консольный. Создай заново проект и перекидай по смыслу код
|
|
|
Записан
|
|
|
|
imAlex
Участник
Offline
|
|
« Ответ #15 : 24-09-2010 08:45 » |
|
, ну смотри: мне необходимо получать сообщение от системы (винды) о старте, блокировке и завершении сеанса. Я на протяжении 3.5 месяцев искал решение, и вот нашел его на сайта http://support.microsoft.com/kb/310153#appliesto, но к сожалению у меня не заработало. Там по идее необходимо всего создать новый проект аля "Hello World", и в нужные места скопировать и вставить 6 кусков кода (там все описано). Тот кусок кода, подключает библиотеку, необходимую для выполнения программы. Плииз помоги. Сделай доброе дело, выложим исходники в нет людям пользоваться. Ато я искал, натыкался на такие же требования, но нигде ничего нет.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
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
Участник
Offline
|
|
« Ответ #17 : 24-09-2010 08:54 » |
|
не понял. Можешь разъяснить, это как?
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #18 : 24-09-2010 08:56 » |
|
imAlex, как создать чистый Win32 проект ? Или про что ? )
|
|
|
Записан
|
|
|
|
imAlex
Участник
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 »
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
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
Участник
Offline
|
|
« Ответ #21 : 24-09-2010 09:17 » |
|
Дико извиняюсь. Мой косяк, я действительно добавил этот файл. Подскажи, как его не добавляя прописать в проекте?
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #22 : 24-09-2010 09:20 » |
|
|
|
|
Записан
|
|
|
|
imAlex
Участник
Offline
|
|
« Ответ #23 : 24-09-2010 09:26 » |
|
а окно где вызвать?
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #24 : 24-09-2010 09:39 » |
|
tools - options - directories
|
|
|
Записан
|
|
|
|
imAlex
Участник
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 »
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #26 : 24-09-2010 10:49 » |
|
а ты не туда вставил. Смотри - справа вверху в выпадающем списке ты выбрал library, а путь указал к инклудам
надо же к библиотекам и указать (к *.lib)
А вот этот путь, который ты ввёл, надо ввести в include
|
|
|
Записан
|
|
|
|
imAlex
Участник
Offline
|
|
« Ответ #27 : 24-09-2010 10:58 » |
|
Прошу прощение за редакцию предыдущего сообщения. где лежит sal.h?
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #28 : 24-09-2010 11:04 » |
|
я не знаю, где он лежит И что делает - тоже. Ищи поиском на диске
|
|
|
Записан
|
|
|
|
imAlex
Участник
Offline
|
|
« Ответ #29 : 24-09-2010 11:14 » |
|
Скинь мне результаты поиска на своем компе. или сами файлы. Результат моего поиска на картинке
|
|
|
Записан
|
|
|
|
|