Форум: "Потрепаться";
Текущий архив: 2003.09.04;
Скачать: [xml.tar.bz2];
Вниз2 вопроса Найти похожие ветки
← →
Study (2003-08-14 13:15) [0]Мастера, посоветуйте.
1) Код определения типа носителя (если не CD, то не запускать):
Path:=appication.exename;
if getdrivetype("path[1]:\")<>Drive_CDROM then
begin
ShowMessage ("//////////");
Application.terminate;
end;
Переписал на CD - запускаю и выводит "//////////" Почему?
P.S. Корректно-ли проверять тип носителя в Create формы, если нет, то где лучше?
2) После закрытия проги должен выдвигаться CD-ROM, в который вставлен диск с прогой.
Код: mciSendString("Set cdaudio Door Open Wait",nil,0,handle);
Так вот, у меня два дисковода. Если диск вставлен в secondary, то после завершения проги выдвигается master (если в master, то он и выдвигается).
Как сделать, чтобы выдвигать тот, в котором диск с прогой?
← →
Anatoly Podgoretsky (2003-08-14 13:26) [1]Такого корневого пути нет "path[1]:\"
← →
dataMaster (2003-08-14 13:29) [2]Открыть-Закрыть CDROM с определенной буквой
function OpenCD(Drive : Char) : Boolean;
uses MMSystem;
Var
Err : 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;
Err := mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
IF Err<>0 Then exit;
DeviceID:=OpenParm.wDeviceID;
try
Err:=mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
IF Err=0 Then exit;
Result:=True;
finally
begin
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
Result:=True;
end;
end;
end;
function CloseCD(Drive : Char) : Boolean;
Var
Err : 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;
Err := mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
IF Err<>0 Then exit;
DeviceID:=OpenParm.wDeviceID;
try
Err:=mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
IF Err=0 Then exit;
Result:=True;
finally
mciSendCommand(DeviceID, MCI_CLOSE, Flags, Longint(@OpenParm));
end;
end;
Твой пример:
1) Код определения типа носителя (если не CD, то не запускать):
Path:=appication.exename;
if getdrivetype("path[1] "+":\")<>Drive_CDROM then
begin
ShowMessage ("//////////");
Application.terminate;
end;
← →
Ru (2003-08-14 13:32) [3]1. определить количество сидиромов
2. определить буквы сидиромов
3. сравнить букву диска из твоего пути с буквами существующих дисков
4. выдвинуть нужный
← →
dataMaster (2003-08-14 13:33) [4]Ошибочка вышла!!! uses MMSystem не туда написал! ;-)
← →
Study (2003-08-14 13:33) [5]спасибо
← →
Anatoly Podgoretsky (2003-08-14 13:33) [6]dataMaster © (14.08.03 13:29) [2]
Что по твоему изменилось?
Как был путь path[1]:\ так и остался, а надо бы, что было например d:\
Это первая ошибка, а вторая может не быть буквы вообще 2000/XP/NET
← →
Ru (2003-08-14 13:37) [7]>Anatoly Podgoretsky © (14.08.03 13:33) [6]
э-э-э-э-э, а если "d:\app.exe" то path[1] равно "d", или в чем я ошибся?
← →
Mike2 Kouzmine2 (2003-08-14 13:40) [8]path[1] - да, а вот "path[1]" - вряд ли.
← →
Study (2003-08-14 13:41) [9]У меня 2000Pro. Букву он видит.
← →
Anatoly Podgoretsky (2003-08-14 13:41) [10]Ru © (14.08.03 13:37) [7]
э-э-э-э-э, а если "d:\app.exe" то path[1] равно "d", то в программу будет передано все равно "path[1]:\"
Это называется болезнь глаз, когда смотришь на код и невидишь явной ошибки, все время обращать внимание на кавычки!!!
← →
Anatoly Podgoretsky (2003-08-14 13:42) [11]Study (14.08.03 13:41) [9]
Я тебе специально не привожу правильный код, что бы ты САМ додумался!
← →
Study (2003-08-14 13:44) [12]>Anatoly и Mike2
>path[1] - да, а вот "path[1]" - вряд ли.
Sorry, писал по памяти (сижу не за своим компом) и описался.
← →
Ru (2003-08-14 13:44) [13]>Anatoly Podgoretsky © (14.08.03 13:41) [10]
миль пардон
← →
dataMaster (2003-08-14 14:13) [14]Anatoly Podgoretsky © (14.08.03 13:41) [10]
>Это называется болезнь глаз, когда смотришь на код и невидишь явной ошибки, все время обращать внимание на кавычки!!!
Да... Это называется, перед тем как советовать, попробуй на деле.
← →
Study (2003-08-14 15:20) [15]Сделал так
if getdrivetype("path[1]"+":\")<>Drive_CDROM
Выводит ошибку
"Несовместимы типы string и PAnsiChar".
← →
Игорь Шевченко (2003-08-14 15:39) [16]Study (14.08.03 15:20) [15]
Значит, это не случайность, а тенденция :)
← →
Study (2003-08-14 16:05) [17]Блин, опять ошибся
if getdrivetype(path[1]+":\")<>Drive_CDROM
← →
app (2003-08-14 16:15) [18]Тип выражения string, надо привести к PChar
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.09.04;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.009 c