Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C++ Builder / Delphi

Выпуск № 330
от 14.05.2004, 02:00

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 1535
Отправлено ответов: 3534
Активность: 230.2 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

sir henry
Статус: Профессиональный
Общий рейтинг: 161.08
[Подробней >>]
Boriss
Статус: Профессиональный
Общий рейтинг: 161.39
URL: Программирование на Паскале
[Подробней >>]
Pawel
Статус: Профессиональный
Общий рейтинг: 155.65
[Подробней >>]
 
samum2000
Статус: Профессиональный
Общий рейтинг: 129.85
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 1525. Доброго времени суток. уважаемые эксперты. У меня к Вам несколько вопросов, а именно: 1. Какие сообщ... (ответов: 2)
Вопрос № 1526. Привет. Небольшая дополнение. >Главное различие (без синтаксиса) - как представлены >строки. В дел... (ответов: 1)
Вопрос № 1527. U menya yest DLL fayl napisanniy na C/C++. Ya moqu otkrit yeqo i vzyat spisok functsiy s pomoshyu Ex... (ответов: 3)

Вопросов: 3, ответов: 6


 Вопрос № 1525

Доброго времени суток. уважаемые эксперты.
У меня к Вам несколько вопросов, а именно:
1. Какие сообщения передает Windows окнам при перезагрузке системы?
2. Что происходит с программой при принудительном еезавершении через Диспетчер задач => Процессы?
проблема состоит в том, что использование WMQueryEndSession ловит выключение компьютера, но не перезагрузку и завершение процесса. В чём кроется моя ошибка?
Кусочек кода прилагается.
Буду рад любой информации, спарвке, мнениям, советам, ссылкам на документацию.
За ранее благодарю.
С Ув. Дмитрий.


Приложение:


Вопрос отправлен: 09.05.2004, 13:50
Отправитель: Дмитрий

[Следующий вопрос >>] [Список вопросов]

Отвечает sir henry

Здравствуйте, Дмитрий!
1. WM_DESTROY
2. Попробуйте отслеживать WM_QUIT.

Ответ отправлен: 10.05.2004, 13:48
Отправитель: sir henry


Отвечает Boriss

Добрый день, Дмитрий!
При закрытии приложения (используя системное меню или вызывая метод закрытия формы), возникают следующие события:
FormCloseQuery - действие по умолчанию, устанавливает переменную CanClose в значание TRUE и продолжает закрытие формы.
FormClose
FormDestroy

Если приложение активно и вы пытаетесь завершить работу Windows (Shut Down), происходят следующие события (с соблюдением последовательности):
FormCloseQuery
FormDestroy

Метод FormClose в этом случае не вызывается.
Вся последовательность событий, происходящую при попытке завершить работу Windows:
Windows посылает сообщение WM_QUERYENDSESSION всем приложениям и ожидает ответ.
Каждое приложение получает сообщение и возвращает одну из величин: не равную нулю - приложение готово завершить свою работу, 0 - приложение не может завершить свою работу.
Если одно из приложений возвращает 0, Windows не завершает свою работу, а снова рассылает всем окнам сообщение, на этот раз WM_ENDSESSION.
Каждое приложение должно снова подтвердить свою готовность завершить работу, поэтому операционная система ожидает ответа TRUE, резонно предполагая, что оставшиеся приложения с момента предыдущего сообщения закрыли свои сессии и готовы завершить работу. Delphi-приложение: возвращает значение TRUE и немедленно вызывает метод FormDestroy, игнорируя при этом метод FormClose.
Происходит завершение работы Windows.



Ответ отправлен: 11.05.2004, 13:29
Отправитель: Boriss


 Вопрос № 1526

Привет.
Небольшая дополнение.
>Главное различие (без синтаксиса) - как представлены
>строки. В дельфях - или просто string или PChar. В Билдере
>будет LPCSTR - указатель на строку. И еще указатели на
>структуру. В Дельфях, обычно, они не как указатели, а как
>обычная запись (Record). В Билдере именно указатель.
Во первых, "как обычная запись", это потому, что используются ссылки (var или const) в объявлениях,а в C++ исп. указатели (хотя если объявить те же API-функции с исп. указателей, а не ссылок, то ничего не изменится - все будет работать) - все равно ассемблерном коде все выглядит одинаково.
Я думаю, ты это знал, но следовало бы и это объяснить в ответе на вопрос.
Во вторых, не только LPCSTR - указатель на строку, а там еще есть LPTSTR, просто LPSTR и т.д. Например, LPCSTR - это "const char *", LPSTR - это "char *". Но это так, мелочи...



Вопрос отправлен: 10.05.2004, 03:24
Отправитель: [mtx]Marouder_*forum.vk.net.ru*

[Следующий вопрос >>] [Список вопросов]

Отвечает sir henry

Приветствую Вас, [mtx]Marouder_*forum.vk.net.ru*!
Я с Вами совершенно согласен :)). Другое дело, что такие подробности надо уже на коде изучать, а я так просто, коротенько, сказал :).
В ассемблерном конечно одинаково, но не про ассемблерный же код речь :)).
Я сказал о том, что лежит на самом виду. Дальнейшее можно изучать только углубившись. Я, честно говоря, поленился :).

Ответ отправлен: 10.05.2004, 13:56
Отправитель: sir henry


 Вопрос № 1527

U menya yest DLL fayl napisanniy na C/C++. Ya moqu otkrit yeqo i vzyat spisok functsiy s pomoshyu ExeScope... no kak ya moqu uznat kakiye i skolko parametrov nujno peredat im?



Вопрос отправлен: 10.05.2004, 17:26
Отправитель: THE_PRO

[Следующий вопрос >>] [Список вопросов]

Отвечает Pawel

Добрый день, THE_PRO!
Используй дизассемблер.

Ответ отправлен: 10.05.2004, 21:47
Отправитель: Pawel


Отвечает Boriss

Добрый день, THE_PRO!
"Обычныу" программы дают только имена, а необычные - диассемблеры - покажут и список параметров

Ответ отправлен: 13.05.2004, 12:58
Отправитель: Boriss


Отвечает samum2000


Приветствую Вас, THE_PRO!
Возьми какой-нибудь дизассемблер (например, W32DASM), открой в нем библиотеку - увидишь и названия всех функций, и типы параметров, и их количество.
____________________________________________________
Voz'mi kakoi-nibud' dizassembler (naprimer, W32DASM), otkroi v nem biblioteku - uvidish' i nazvaniya vseh funktsii, i tip parametrov, i ih kolichestvo.
--------------------------
-=Experts helper: testmode=-

Ответ отправлен: 12.05.2004, 05:59
Отправитель: samum2000



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (25)
C / C++ (14)
Perl (4)
Builder / Delphi (19)
Pascal (20)
Basic / VBA (4)
Java / JavaScript (4)
PHP (12)
Криптография (8)
WinAPI (10)
Радиоэлектроника (5)
Пользователю
Windows 95/98/Me (35)
Windows NT/2000/XP (52)
"Железо" (27)
Поиск информации (14)
Администратору
Windows NT/2000/XP (26)
Linux / Unix (9)
Юристу
Гражданское право (10)
Семейное право (7)
Трудовое право (9)
КоАП (6)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2004 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу


В избранное