Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #30 : 24-09-2010 11:34 » |
|
imAlex, я перестал понимать, что ты хочешь. И устал на сегодня уже ))) Заранее могу сказать только, что скидывать ничего не нужно - у тебя всё есть
|
|
|
Записан
|
|
|
|
imAlex
Участник
Offline
|
|
« Ответ #31 : 24-09-2010 11:38 » |
|
Прости за дотошливость. Огромное спасибо за помощь, ты для меня очень много сделал Добавлено через 3 часа, 18 минут и 3 секунды:Пересоздал проект в VC 10 Express, мне в ответ: 1>d:\inout\fastuserswitching2\fastuserswitching\fastuserswitching\fastuserswitching.cpp(103): error C2440: =: невозможно преобразовать "LPCSTR" в "LPCWSTR" 1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции 1>d:\inout\fastuserswitching2\fastuserswitching\fastuserswitching\fastuserswitching.cpp(200): error C2664: strlen: невозможно преобразовать параметр 1 из "TCHAR [100]" в "const char *" 1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции 1>d:\inout\fastuserswitching2\fastuserswitching\fastuserswitching\fastuserswitching.cpp(265): error C2664: CreateMutexW: невозможно преобразовать параметр 3 из "const char [28]" в "LPCWSTR" 1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции Кто в курсе как исправить?
|
|
« Последнее редактирование: 24-09-2010 14:56 от imAlex »
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #32 : 24-09-2010 15:09 » |
|
imAlex, ты хоть место ошибки покажи ) А так - из однобайтовой кодировки в юникод надо преобразовать
|
|
|
Записан
|
|
|
|
imAlex
Участник
Offline
|
|
« Ответ #33 : 24-09-2010 15:20 » |
|
Указывает на строчку 1) wcex.lpszMenuName = (LPCSTR)IDC_FASTUSERSWITCHING; 2) DrawText(hdc, szHello, strlen(szHello), &rt, DT_CENTER); 3) g_hMutexAppRunning = CreateMutex( NULL, FALSE, "Global\\My Company MpApp.EXE"); ОГРОМНОЕ спасибо Алексей1153++, за помощь. Добавлено через 18 минут и 10 секунд:нашел. По русски звучит так:Проект->Свойства:<название проекта>->Свойства конфигурации->Общие->Набор символов->Использовать многобайтовую кодировку
|
|
« Последнее редактирование: 24-09-2010 15:38 от imAlex »
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #34 : 24-09-2010 16:04 » |
|
imAlex, ну, если юникод не планируешь использовать, то можно его просто отключить.
|
|
|
Записан
|
|
|
|
imAlex
Участник
Offline
|
|
« Ответ #35 : 27-09-2010 09:08 » |
|
imAlex, ну, если юникод не планируешь использовать, то можно его просто отключить.
ммм, а где мне может пригодиться юникод? То есть где он используется?
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #36 : 27-09-2010 09:18 » |
|
не знаю к примеру, когда на китайский будешь переводить
|
|
|
Записан
|
|
|
|
imAlex
Участник
Offline
|
|
« Ответ #37 : 27-09-2010 09:20 » |
|
Что означают следующие ошибки: "FastUserSwitching.exe": Загружено: "D:\InOut\FastUserSwitching2\FastUserSwitching\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
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #38 : 27-09-2010 09:41 » |
|
а где написано, что это ошибки ? а PDB - это вроде отладочная БД, создаваемая студией
|
|
|
Записан
|
|
|
|
imAlex
Участник
Offline
|
|
« Ответ #39 : 27-09-2010 10:20 » |
|
Понял, это не ошибка. http://msdn.microsoft.com/ru-ru/library/yd4f8bd1.aspxОстается основной вопрос: Как теперь получать само сообщение от винды о блокировке системы? пожалуйста, помогите. Осталось получить это сообщение и прога готова.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #40 : 27-09-2010 11:00 » |
|
imAlex, покажи мне, что такое оконная процедура и какие в неё передаются аргументы.
|
|
|
Записан
|
|
|
|
imAlex
Участник
Offline
|
|
« Ответ #41 : 27-09-2010 11:27 » |
|
imAlex, покажи мне, что такое оконная процедура и какие в неё передаются аргументы.
Вот у нас оконная процедура: LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { int wmId, wmEvent; PAINTSTRUCT ps; HDC hdc; TCHAR szHello[MAX_LOADSTRING]; LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING);
switch (message) { case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); // Parse the menu selections: switch (wmId) { case IDM_ABOUT: DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About); break; case IDM_EXIT: DestroyWindow(hWnd); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } break; case WM_PAINT: hdc = BeginPaint(hWnd, &ps); // TODO: Add any drawing code here... RECT rt; GetClientRect(hWnd, &rt); DrawText(hdc, szHello, strlen(szHello), &rt, DT_CENTER); EndPaint(hWnd, &ps); break;
case WM_DESTROY: WTSUnRegisterSessionNotification(hWnd); PostQuitMessage(0); break; ///////////////// case WM_WTSSESSION_CHANGE: switch( wParam ) { case WTS_CONSOLE_CONNECT: MessageBox(hWnd, TEXT("WTS_CONSOLE_CONNECT"), TEXT("WM_WTSSESSION_CHANGE"), MB_OK ); break; case WTS_CONSOLE_DISCONNECT: MessageBox(hWnd, TEXT("WTS_CONSOLE_DISCONNECT"), TEXT("WM_WTSSESSION_CHANGE"), MB_OK ); break; case WTS_SESSION_LOCK: MessageBox(hWnd, TEXT("WTS_SESSION_LOCK"), TEXT("WM_WTSSESSION_CHANGE"), MB_OK ); break; case WTS_SESSION_UNLOCK: MessageBox(hWnd, TEXT("WTS_SESSION_UNLOCK"), TEXT("WM_WTSSESSION_CHANGE"), MB_OK ); break; default: break; } break; /////////////////// default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; } Нас интересует case WM_WTSSESSION_CHANGE. Добавлено через 50 минут и 40 секунд:Я так понял. мне необходимо сделать так, чтоб прога не закрывалась (а она сейчас закрывается) и в самом кейсе вызывать необходимую мне функцию.
|
|
« Последнее редактирование: 27-09-2010 12:17 от imAlex »
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #42 : 27-09-2010 15:07 » |
|
ну, тебе виднее, что ты хочешь вызвать ) А обработчик сообщения - это вот именно case WM_WTSSESSION_CHANGE: .... break;
|
|
|
Записан
|
|
|
|
imAlex
Участник
Offline
|
|
« Ответ #43 : 27-09-2010 15:14 » |
|
асибо Лешка. Меня уще поправили. Я тут завис окончательно.. Никак не могу понять, как проверить что лежит в WM_WTSSESSION_CHANG, и как заставить прогу не закрываться. Есть конечно вариант в стиле пустить счетчик, но на мой взгляд это плохая идея (зря проц грузит).
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #44 : 27-09-2010 17:27 » |
|
ну, совсем не закрываться, наверное, нельзя так сделать. Но, к примеру, можно попробовать: 1) WM_CLOSE - в обработчике этого сообщения вернуть 0. Иначе By default, the DefWindowProc function calls the DestroyWindow function to destroy the window.
2) WM_QUIT - тут сложнее, без экспериментов я точно не смогу подсказать. Его нужно выцепить ещё в GetMessage Note: WM_QUIT is not a real message. PostQuitMessage sets a flag on the message queue to indicate that a quit is pending. GetMessage tests the flag after all messages queued by PostMessage are no longer pending in the message queue. If the flag is set, GetMessage returns zero.
|
|
|
Записан
|
|
|
|
imAlex
Участник
Offline
|
|
« Ответ #45 : 30-09-2010 11:43 » |
|
Леша, а у тебя эта программа возвращает состояние системы. То есть реагирует на login, logout и т.д.?
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #46 : 30-09-2010 12:50 » |
|
а меня нет никакой программы, ты про что ?
|
|
|
Записан
|
|
|
|
imAlex
Участник
Offline
|
|
« Ответ #47 : 30-09-2010 13:30 » |
|
https://forum.shelek.ru/index.php?action=dlattach;topic=25541.0;attach=5194Это то, что ты исправлял и скидывал мне Добавлено через 17 дней, 22 часа, 5 минут и 57 секунд:Всем привет. Дописал программу, запустил на другом компе и прога сразу вылетела. Пишет, что не может найти msvcp100d.dll. Кто знает, с чем может быть связано такое сообщение?
|
|
« Последнее редактирование: 18-10-2010 11:36 от imAlex »
|
Записан
|
|
|
|
RXL
|
|
« Ответ #48 : 18-10-2010 13:06 » |
|
С тем, что указанная библиотека не найдена.
Сперва установи, откуда она у тебя - штатная ли она или с каким-то софтом шла.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
imAlex
Участник
Offline
|
|
« Ответ #49 : 18-10-2010 13:39 » |
|
Она не штатная. Пришла ко мне с VC 10, лежит в system32
Добавлено через 1 минуту и 6 секунд: пробовал скопировать и вставить на другой ПК, но естественно не сработало. Видимо ее необходимо как-то прописывать.
|
|
« Последнее редактирование: 18-10-2010 13:40 от imAlex »
|
Записан
|
|
|
|
Sla
|
|
« Ответ #50 : 18-10-2010 14:05 » |
|
regsvr32 /?
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
imAlex
Участник
Offline
|
|
« Ответ #51 : 18-10-2010 14:20 » |
|
пробовал. выдает "Ошибка при загрузке LoadLibrery-...-Не найден указанный модуль"
Добавлено через 25 минут и 22 секунды: Ребята. Всем огромное спасибо за помощь. Прога заработала. Project Properties->C++->Code Generation->Runtime Library = "Multi Threaded /MT"
|
|
« Последнее редактирование: 18-10-2010 14:45 от imAlex »
|
Записан
|
|
|
|
|