Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001

Здесь есть возможность читать онлайн «Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Советы по Delphi. Версия 1.4.3 от 1.1.2001: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Советы по Delphi. Версия 1.4.3 от 1.1.2001»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

…начиная с 1001. Смотрите другие файлы…

Советы по Delphi. Версия 1.4.3 от 1.1.2001 — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Советы по Delphi. Версия 1.4.3 от 1.1.2001», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

if ((Ctrl == CTRL_SHUTDOWN_EVENT) || (Ctrl == CTRL_LOGOFF_EVENT)) {

// Вау! Юзер обламывает!

} else {

// Тут что-от другое можно творить. А можно и не творить :-)

}

return TRUE;

}

functionCtrl_Handler(Ctrl: Longint): LongBool;

begin

ifCtrl in[CTRL_SHUTDOWN_EVENT, CTRL_LOGOFF_EVENT] then begin

// Вау, вау

end

else begin

// Am I creator?

end;

Result := true;

end;

А где-то в программе:

SetConsoleCtrlHandler(Ctrl_Handler, TRUE);

Таких обработчиков можно навесить кучу. Если при обработке какого-то из сообщений обработчик возвращает FALSE, то вызывается следующий обработчик. Можно настроить таких этажерок, что ого-го :-)))

Короче, смотри описание SetConsoleCtrlHandler — там всё есть.

Как корректно перехватить сигнал выгрузки операционной системы, если в моей программе нет окна?

Nomadicрекомендует следующий способ:

Используй GetMessage(), в качестве HWND окна пиши NULL (на Паскале — 0). Если в очереди сообщений следующее — WM_QUIT, то эта функция фозвращает FALSE. Если ты пишешь программу для Win32, то запихни это в отдельный поток, организующий выход из программы.

Постепенное умирание

The_Spriteпишет:

Вопрос: А как реализовать в одном компоненте такие функции как выключение компьютера, перезагрузка, завершение сеанса работы пользователя, Eject CD, выключение питания монитора и т.д.? Ответ: предлагаем посмотреть следующий пример…

Совместимость: все версии Delphi

Пример:

procedureTForm1.Button1Click(Sender: TObject);

begin

PowerControl1.Action:=actCDEject;// Или...

actLogOFF, actShutDown...

PowerControl1.Execute;

end

Component Code:

unit

PowerControl;

interface

usesWinTypes, WinProcs, Messages, SysUtils, Classes, Controls,Forms, Graphics,MMSystem;

type

TAction =(actLogOFF,actShutDown,actReBoot,actForce,actPowerOFF,

actForceIfHung,actMonitorOFF,actMonitorON,actCDEject,actCDUnEject);

type TPowerControl = class(TComponent)

private

FAction : TAction;

procedureSetAction(Value : TAction); protected

public

functionExecute :Boolean;

published

propertyAction :TAction readFAction writeSetAction;

end;

procedure Register;

implementation

procedure Register;

begin

RegisterComponents('K2',[TPowerControl]);

end;

procedureTPowerControl.SetAction(Value : TAction);

begin

FAction := Value;

end;

functionTPowerControl.Execute : Boolean;

begin

with(Owner asTForm) do caseFAction of

actLogOff: ExitWindowsEx(EWX_LOGOFF, 1);

actShutDown: ExitWindowsEx(EWX_SHUTDOWN, 1);

actReBoot:ExitWindowsEx(EWX_REBOOT, 1);

actForce:ExitWindowsEx(EWX_FORCE, 1);

actPowerOff:ExitWindowsEx(EWX_POWEROFF, 1);

actForceIfHung:ExitWindowsEx(EWX_FORCEIFHUNG, 1);

actMonitorOFF:SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 0);

actMonitorON: SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, -1);

actCDEject: mciSendstring('SET CDAUDIO DOOR OPEN WAIT', nil, 0, Handle);

actCDUnEject: mciSendstring('SET CDAUDIO DOOR CLOSED WAIT', nil, 0, Handle);

end; {Case}

Result := True;

end;

end.

Разное

Как не допустить запуск второй копии программы VIII

Игорь Пролисрекомендует следующий код:

{*******************************************************}

{ }

{ HTMLCoolEdit }

{ }

{ Copyright (c) 1999-2000 PROFOX }

{ }

{*******************************************************}

unitmultinst;

interface

usesForms, Windows, Dialogs, SysUtils;

const

MI_NO_ERROR = 0;

MI_FAIL_SUBCLASS = 1;

MI_FAIL_CREATE_MUTEX = 2;

functionGetMIError: Integer;

functionInitInstance : Boolean;

implementation

usesRegWork, FileWork;

var

UniqueAppStr : PChar;

MessageId: Integer;

WProc: TFNWndProc = Nil;

MutHandle: THandle = 0;

MIError: Integer = 0;

functionGetMIError: Integer;

begin

Result := MIError;

end;

functionNewWndProc(Handle: HWND; Msg: Integer; wParam, lParam: Longint): Longint; StdCall;

begin

Result := 1;

ifMsg = MessageID then begin

ifIsIconic(Application.Handle) thenOpenIcon(Application.Handle)

elseSetForegroundWindow(Application.Handle);

FileWork.LoadFileName(RegWork.RWGetParamStr1);

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Советы по Delphi. Версия 1.4.3 от 1.1.2001»

Представляем Вашему вниманию похожие книги на «Советы по Delphi. Версия 1.4.3 от 1.1.2001» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Советы по Delphi. Версия 1.4.3 от 1.1.2001»

Обсуждение, отзывы о книге «Советы по Delphi. Версия 1.4.3 от 1.1.2001» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x