Чтение онлайн

ЖАНРЫ

Советы по Delphi. Версия 1.4.3 от 1.1.2001

Озеров Валентин

Шрифт:

CD-ROM 

Открытие и закрытие нескольких приводов CD-ROM

Что касается вопроса "Открытие и закрытие привода CD-ROM", то при наличии более одного CD-ROMа в системе, рекомендую воспользоваться следующими функциями:

// ____ _ ______ __

// / __ \_____(_) _____/_ __/___ ____ / /____

// / / / / ___/ / | / / _ \/ / / __ \/ __ \/ / ___/

// / /_/ / / / /| |/ / __/ / / /_/ / /_/ / (__ )

// /_____/_/ /_/ |___/\___/_/ \____/\____/_/____/

//

(*******************************************************************************

* DriveTools 1.0 *

* *

* (c) 1999 Jan Peter Stotz *

* *

********************************************************************************

* *

* If you find bugs, has ideas for missing featurs, feel free to contact me *

* jpstotz@gmx.de *

* *

********************************************************************************

* Date last modified: May 22, 1999 *

*******************************************************************************)

unit DriveTools;

interface

uses Windows, SysUtils, MMSystem;

function CloseCD(Drive: Char): Boolean;

function OpenCD(Drive: Char): Boolean;

implementation

function OpenCD(Drive : Char): Boolean;

Var

 Res: MciError;

 OpenParm: TMCI_Open_Parms;

 Flags: DWord;

 S: String;

 DeviceID: Word;

begin

 Result:=false;

 S:=Drive+':';

 Flags:=mci_Open_Type or mci_Open_Element;

 With OpenParm do begin

dwCallback := 0;

lpstrDeviceType := 'CDAudio';

lpstrElementName := PChar(S);

 end;

 Res := mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));

 IF Res<>0 Then exit;

 DeviceID:=OpenParm.wDeviceID;

 try

Res:=mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);

IF Res=0 Then exit;

Result:=True;

 finally

mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));

 end;

end;

function CloseCD(Drive : Char) : Boolean;

Var

 Res: MciError;

 OpenParm: TMCI_Open_Parms;

 Flags: DWord;

 S: String;

 DeviceID: Word;

begin

 Result:=false;

 S:=Drive+':';

 Flags:=mci_Open_Type or mci_Open_Element;

 With OpenParm do begin

dwCallback := 0;lpstrDeviceType := 'CDAudio';

lpstrElementName := PChar(S);

 end;

 Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));

 IF Res<>0 Then exit;

 DeviceID:=OpenParm.wDeviceID;

 try

Res:=mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);

IF Res=0 Then exit;

Result:=True;

 finally

mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));

 end;

end;

end.

Прислал Vadim Petrov. 

Клавиатура 

Переключение

клавиатуры

Переключение языков из программы

Для переключения языка применяется вызов LoadKeyboardLayout:

var russian, latin: HKL;

russian:=LoadKeyboardLayout('00000419', 0);

latin:=LoadKeyboardLayout('00000409', 0); где то в программе

SetActiveKeyboardLayout(russian);

Прислал Igor Nikolaev aKa The Sprite. 

Поделиться с друзьями: