Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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
14-10949
ehri
2003-08-16 12:45
2003.09.04
Gif Animated


1-10757
god4
2003-08-23 21:13
2003.09.04
Delphi 7 - компонент ServerSocket отсутствует !!!! help


14-10967
SergP
2003-08-15 08:07
2003.09.04
У меня этот форум не работает. Что делать?


14-10911
имя
2003-08-18 10:48
2003.09.04
Могу предоставить сайт///


14-10965
Soft
2003-08-15 17:33
2003.09.04
Российский процессор Эльбрус может стать конкурентом Itanium





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский