Форум » Для флейма » Уровень закрытия программы » Ответить

Уровень закрытия программы

fil: В MSDN написано, что через SetProcessShutdownParameters можно установить уровень опроса списка процессов при закрытии их системой (ну там Диспетчер задач - 1, Explorer - 2) Можно ли процессам своих задач назначать уровни до FF ? Как получить текущий уровень закрытия своего процесса ?

Ответов - 9

Петр: fil пишет: Можно ли процессам своих задач назначать уровни до FF ? Как получить текущий уровень закрытия своего процесса ? 1) Можно, с учетом примечания (Remarks); 2) GetProcessShutdownParameters

fil: 1. Что значит с учетом примечания (Remarks) Номер приоритета должен быть уникальным или нет ? 2. Типа так - GetProcessShutdownParameters (@p1, @P2) ?

PSP: fil пишет: 1. Что значит  цитата: с учетом примечания (Remarks) Remarks Applications running in the system security context do not get shut down by the operating system. They get notified of shutdown or logoff through the callback function installable via SetConsoleCtrlHandler. They also get notified in the order specified by the dwLevel parameter.


Петр: fil пишет: Номер приоритета должен быть уникальным или нет ? Поскольку msdn об этом ничего не говорит, то скорее всего нет. Но не видя исходники функции, можно лишь догадываться, что там произойдет и как будут учитываться пожелания быть первым или последним. PSP пишет: Remarks Applications running in the system security context do not get shut down by the operating system. They get notified of shutdown or logoff through the callback function installable via SetConsoleCtrlHandler. They also get notified in the order specified by the dwLevel parameter. Ага. fil пишет: 2. Типа так - GetProcessShutdownParameters (@p1, @P2) ? В теории так, опять же не видя реализации функции-переходника GetProcessShutdownParameters, что-то утверждать - неблагодарное занятие.

fil: Петр, PSP благодарю. Будем посмотреть

fil: Выяснилась любопытная штука - ежели сделать в своей проге SetConsoleCtrlHandler(1,1), то при перезагрузке компа (прога открыта) кнопки с предложением о Принудительном закытии оной не появляется. Однако ежели эта прога живет в трее, предложением о Принудительном закытии обязательно появится. В инете ничего похожего не нашел

Петр: fil пишет: SetConsoleCtrlHandler Эту функцию мы используем для консольных программ, для GUI - нужно обрабатывать WM_QUERYENDSESSION / WM_ENDSESSION. Там (в описании WM_QUERYENDSESSION) и ищите ответы на свои вопросы (опять Remarks читать придется ).

fil: Извиняюсь, конечно же SetProcessShutdownParameters, а не SetConsoleCtrlHandler. Это я описался. С первой попытки перезагрузки компа закрывается Tray, а со второй попытки уже без вопросов комп перезагпужается. Видимо все-рвно придется WM_QUERYENDSESSION / WM_ENDSESSION обрабатывать. А как поймать это сообщение - типа листнера что-то писать

Петр: fil пишет: как поймать это сообщение - типа листнера что-то писать Что-то в этом роде, В FW не знаю, а в MiniGUI set events func to рулит.



полная версия страницы