| Структура программирования, программирование, языки программирования, книги программирование | На сайте представлена информация про программирование в Интернете и работу |
|
Как Вы относитесь к курящим девушкам? Распознавание текста? Как найти список свойств объекта? потеря сохраненных данных в БД HOOK QReport и QRPreview, Как сделать Print Preview в QReport ? Множества в SQL. Передача параметров., ~Истина где-то рядом~ Отследить что нажимают клавиши, На клавиатуре Запись в ЕХЕ- файл Как в ресурсное меню поместить изображение? Импорт в реестр Файлов *.REG Стоимось проги.... Вопросы по компоненту TNoteBook - НУ НАКОНЕЦТО, ЗАМЕНА ИКОНКИ СТАЛА РЕАЛЬНОСТЬЮ -, Хуки-ПУки Восстановление минимизированного приложения Integer -> Cardinal Designer, ToolBar kak у Builder Ссылка на форму, как установить ссылку с form5 на form1? Два вопроса по TRichView, кто с этим работал помагите плиз Использование mciSendCommand. Как посчитать трафик?, Сколко дали и сколько взяли! Создание соединения Помогите пожалуйста, замучался...., Предотвратить сообщение об ошибке? Как записать информацию на CD-R/CD-RW help plz, тут такой вопрос Помогите найти Cristal Reports кнопки (enabled/disabled) Как подружить BDE и MSSQL-2000?, После апгрейда SQL-сервера с 6.5 на 2000 прозрачный фон у иконок задача по консоле в delphi Сортировка строковых значений как чисел, по возрастанию.... Как прикрутить ShellExecute?, Чего ей надо? шпион на соединение Плюс-плюс Как определить подключеныTCP-IPпротоколы? Как минимизировать окна чужих программ?, свою оставить открытой TCP/IP А можно_ли организовать подключение компонента ... Pascal+First Steps, Стоит ли создавать сайт?... GetVolumeInformation, Проблема COM Port - слушать, АТС и Компьютер Ole automation Вопрос о создании файла Левый SHIFT+ENTER/Правый SHIFT+ENTE, Полное решение. Для тех кто столкнется. Можно-ли узнать hWnd у безоконного приложения? Как Вы относитесь к курящим девушкам? Как отследить завершение работы в API приложении? Вопрос о реакции с клавы Autodesk MapGuide, Программирование в Autodesk MapGuide Delphi+TCanvas, Грамотно ли чертить график на канве? Смерть буржуям! Ini, Как считать раздел? Прдотвращение второга запуска. Вопрос обо всем Без подсказок, похоже, мне не обойтись, Продолжение проблем с потоком Как определить сколько раз запущен фаил? Движение формы WebBrowser, Загрузка ТХТ- файла в WebBrowser TForm, Где обработчик событий у TForm? Delphi+Internet, TInetXPageProducer DirectInput, shift+Enter/Правый shift+Enter Как работать с TReader, Хочу нестандартно использовать TReader Функция GetVolumeInformation, Работа в сети! Вопрос о Boot секторах Вопрос по поводу непрямолинейности form & thread, непонятки Ping Посоветуйте репортер отчетов Помогите получить Crystal Report найти бы компонент, :) |
Платные хостинги Раскрутка сайта Книги по программированию Как отследить завершение работы в API приложении?
- Я когда-то тоже этим занимался, но WM_QUERYENDSESSION поймать так и не смог. а вообще достаточно всего лишь возвращать то ли ноль, то ли не ноль, и винда вырубаться не будет. - -MSDN---WM_QUERYENDSESSIONThe WM_QUERYENDSESSION message is sent when the user chooses to end the session or when an application calls the ExitWindows function. If any application returns zero, the session is not ended. The system stops sending WM_QUERYENDSESSION messages as soon as one application returns zero. After processing this message, the system sends the WM_ENDSESSION message with the wParam parameter set to the results of the WM_QUERYENDSESSION message. A window receives this message through its WindowProc function. LRESULT CALLBACK WindowProc( HWND hwnd, // handle to window WM_QUERYENDSESSION, // the message to send WPARAM wParam, // not used LPARAM lParam // logoff option);----------------еще вопросы есть? Я правда не знаю, как конкретно ты ловишь сообщения в Delphi, но тебе в ответ на него нужно 0 вернуть, и все ок. - http://pascal.sources.ru/cgi-bin....1140087 - Код function WindowProc(hWnd: THandle; uMsg, wParam, lParam: Integer): Integer;stdcall; export;beginResult := 0;if uMsg = TaskBarCreated then TaskBarAddIcon(hWnd, ICON_ID, LoadIcon(hInstance, 'MAINICON'), WM_TASKBAR, Hint);case uMsg of WM_QUERYENDSESSION: begin if messageBox(0,'Выйти из Windows?','Выход',MB_YESNO)=ID_NO then Result := integer(FALSE) else Result := DefWindowProc(hWnd, uMsg, wParam, lParam); end; WM_COMMAND: case wParam of ID_CLOSE: PostMessage(hWnd, WM_DESTROY, 0, 0); ID_OPENCD: begin {-------} end; end; WM_TASKBAR: case wParam of ICON_ID: case lParam of WM_RBUTTONDOWN: PopupMenu(hWnd); end; end; WM_DESTROY: begin PostQuitMessage(0); Exit; end; end;Result := DefWindowProc(hWnd, uMsg, wParam, lParam);end;highlightSyntax('delphiTRhYzU','delphi');Ну а другие-то сообщения этот код ловит? А зачем export? - Стало интересно, попробовал. Вот код. Полностью работает. Код program kvd;uses Windows, Messages;var hWnd: THandle; WndClass: TWndClass; Msg: TMsg;function WindowProc(hWnd: THandle; uMsg, wParam, lParam: Integer): Integer; stdcall;begin Result:=0; case uMsg of WM_QUERYENDSESSION: Result := integer(false); WM_DESTROY: PostQuitMessage(0); else Result := DefWindowProc(hWnd, uMsg, wParam, lParam); end;end;begin FillChar(WndClass, SizeOf(WndClass), 0); with WndClass do begin hInstance := SysInit.hInstance; lpszClassName := 'dd'; lpfnWndProc := @WindowProc; end; RegisterClass(WndClass); hWnd := CreateWindow('dd', '', 0, 0, 0, 0, 0, 0, 0, hInstance, NIL); if hWnd = 0 then Exit; ShowWindow(hWnd, SW_HIDE); while GetMessage(Msg, 0, 0, 0) do begin TranslateMessage(Msg); DispatchMessage(Msg); end;end.highlightSyntax('delphiQwZjQ2','delphi'); Ничего сложного. Просто читайте SDK. |