Форум: "Система";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
ВнизCD-ROM Найти похожие ветки
← →
Skaner © (2004-03-14 16:02) [0]Приветствую вас!
Подскажите пожалуйста каким образом мне отследить попытку открытия сидирома и вывести сообщение!
Зарание благодарен!
← →
Skaner © (2004-03-14 16:02) [0]Приветствую вас!
Подскажите пожалуйста каким образом мне отследить попытку открытия сидирома и вывести сообщение!
Зарание благодарен!
← →
ssk (2004-03-14 16:07) [1]никак
← →
ssk (2004-03-14 16:07) [1]никак
← →
zeqfreed © (2004-03-14 18:57) [2]Помоему можно драйвер написать... только мне помнится, что на delphi драйверы не пишутся..
← →
zeqfreed © (2004-03-14 18:57) [2]Помоему можно драйвер написать... только мне помнится, что на delphi драйверы не пишутся..
← →
Иван Ширко (2004-03-14 21:02) [3]Если нужно блокировать CD-ROM, то используй ASPI. Если нужно отследить сабытие открытия лотка, то проверяй по таймеру (опять ASPI)
← →
Иван Ширко (2004-03-14 21:02) [3]Если нужно блокировать CD-ROM, то используй ASPI. Если нужно отследить сабытие открытия лотка, то проверяй по таймеру (опять ASPI)
← →
Dimaxx © (2004-03-14 23:33) [4]Все можно. Вот пример.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
private
{ Private declarations }
procedure WMDeviceChange(var Message: TMessage); message WM_DEVICECHANGE;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
const DBT_DEVICEARRIVAL = $8000;
const DBT_DEVICEQUERYREMOVE = $8001;
const DBT_DEVICEQUERYREMOVEFAILED = $8002;
const DBT_DEVICEREMOVEPENDING = $8003;
const DBT_DEVICEREMOVECOMPLETE = $8004;
const DBT_DEVICETYPESPECIFIC = $8005;
const DBT_CONFIGCHANGED = $0018;
procedure TForm1.WMDeviceChange(var Message: TMessage);
var S: string;
begin
{Do Something here}
case Message.wParam of
DBT_DEVICEARRIVAL : S:="A device has been inserted and is now available";
DBT_DEVICEQUERYREMOVE: begin
S:="Permission to remove a device is requested";
ShowMessage(S);
{True grants premission}
Message.Result:=integer(True);
Exit;
end;
DBT_DEVICEQUERYREMOVEFAILED: S:="Request to remove a device has been canceled";
DBT_DEVICEREMOVEPENDING : S:="Device is about to be removed";
DBT_DEVICEREMOVECOMPLETE : S:="Device has been removed";
DBT_DEVICETYPESPECIFIC : S:="Device-specific event";
DBT_CONFIGCHANGED : S:="Current configuration has changed"
else S:="Unknown Device Message";
end;
ShowMessage(S);
inherited;
end;
end.
DBT_DEVICEREMOVECOMPLETE - это то, что тебе нужно.
← →
Dimaxx © (2004-03-14 23:33) [4]Все можно. Вот пример.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
private
{ Private declarations }
procedure WMDeviceChange(var Message: TMessage); message WM_DEVICECHANGE;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
const DBT_DEVICEARRIVAL = $8000;
const DBT_DEVICEQUERYREMOVE = $8001;
const DBT_DEVICEQUERYREMOVEFAILED = $8002;
const DBT_DEVICEREMOVEPENDING = $8003;
const DBT_DEVICEREMOVECOMPLETE = $8004;
const DBT_DEVICETYPESPECIFIC = $8005;
const DBT_CONFIGCHANGED = $0018;
procedure TForm1.WMDeviceChange(var Message: TMessage);
var S: string;
begin
{Do Something here}
case Message.wParam of
DBT_DEVICEARRIVAL : S:="A device has been inserted and is now available";
DBT_DEVICEQUERYREMOVE: begin
S:="Permission to remove a device is requested";
ShowMessage(S);
{True grants premission}
Message.Result:=integer(True);
Exit;
end;
DBT_DEVICEQUERYREMOVEFAILED: S:="Request to remove a device has been canceled";
DBT_DEVICEREMOVEPENDING : S:="Device is about to be removed";
DBT_DEVICEREMOVECOMPLETE : S:="Device has been removed";
DBT_DEVICETYPESPECIFIC : S:="Device-specific event";
DBT_CONFIGCHANGED : S:="Current configuration has changed"
else S:="Unknown Device Message";
end;
ShowMessage(S);
inherited;
end;
end.
DBT_DEVICEREMOVECOMPLETE - это то, что тебе нужно.
← →
Gero © (2004-03-14 23:50) [5]> Dimaxx © (14.03.04 23:33) [4]
И это будет работать? Сомневаюсь. Читаем из хелпа про WM_DEVICECHANGE:
The WM_DEVICECHANGE device message notifies an application or device driver of a change to the hardware configuration of a device or the computer
Не то...
← →
Gero © (2004-03-14 23:50) [5]> Dimaxx © (14.03.04 23:33) [4]
И это будет работать? Сомневаюсь. Читаем из хелпа про WM_DEVICECHANGE:
The WM_DEVICECHANGE device message notifies an application or device driver of a change to the hardware configuration of a device or the computer
Не то...
← →
Dimaxx © (2004-03-15 22:38) [6]По крайней мере, я попробовал. Как только диск вставили и он опознан - срабатывает DBT_DEVICEARRIVAL. Открываешь лоток - срабатывает DBT_DEVICEREMOVECOMPLETE. Так что подожди с "не то", а попробуй сначала :-)
← →
Dimaxx © (2004-03-15 22:38) [6]По крайней мере, я попробовал. Как только диск вставили и он опознан - срабатывает DBT_DEVICEARRIVAL. Открываешь лоток - срабатывает DBT_DEVICEREMOVECOMPLETE. Так что подожди с "не то", а попробуй сначала :-)
← →
Gero © (2004-03-15 23:10) [7]> Dimaxx © (15.03.04 22:38) [6]
Попробовал. Выдвигаю - задвигаю... Реакции - ноль.
← →
Gero © (2004-03-15 23:10) [7]> Dimaxx © (15.03.04 22:38) [6]
Попробовал. Выдвигаю - задвигаю... Реакции - ноль.
← →
ssk (2004-03-16 15:45) [8]>Dimaxx © (15.03.04 22:38) [6]
По крайней мере, я попробовал. Как только диск вставили и он опознан - срабатывает DBT_DEVICEARRIVAL. Открываешь лоток - срабатывает DBT_DEVICEREMOVECOMPLETE. Так что подожди с "не то", а попробуй сначала :-)
ага, выдвинул. диск вытащил. и все... реакции нет. что дальше? ;-)
← →
ssk (2004-03-16 15:45) [8]>Dimaxx © (15.03.04 22:38) [6]
По крайней мере, я попробовал. Как только диск вставили и он опознан - срабатывает DBT_DEVICEARRIVAL. Открываешь лоток - срабатывает DBT_DEVICEREMOVECOMPLETE. Так что подожди с "не то", а попробуй сначала :-)
ага, выдвинул. диск вытащил. и все... реакции нет. что дальше? ;-)
← →
ssk (2004-03-16 15:47) [9]забыл написать, что при этом пустой лоток задвинул обратно
← →
ssk (2004-03-16 15:47) [9]забыл написать, что при этом пустой лоток задвинул обратно
← →
Dimaxx © (2004-03-16 22:06) [10]2 ssk: Пустой? А что же ему опознавать - вот и реакции ноль.
2 Gero: У меня все работает, писал граббер аудиодисков и применил код для обновления окна с содержимым диска. Все работает на "ура". Пример выдрал из работающего проекта. Так что ищи ошибку.
← →
Dimaxx © (2004-03-16 22:06) [10]2 ssk: Пустой? А что же ему опознавать - вот и реакции ноль.
2 Gero: У меня все работает, писал граббер аудиодисков и применил код для обновления окна с содержимым диска. Все работает на "ура". Пример выдрал из работающего проекта. Так что ищи ошибку.
← →
Dimaxx © (2004-03-16 22:08) [11]...у себя. :-)
← →
Dimaxx © (2004-03-16 22:08) [11]...у себя. :-)
← →
Gero © (2004-03-16 22:20) [12]> Так что ищи ошибку ...у себя
Интересно, какую я мог допустить ошибку, используя Copy/Paste? ;)
Не знаю, как у Вас, я у меня Ваш код не работает.
← →
Gero © (2004-03-16 22:20) [12]> Так что ищи ошибку ...у себя
Интересно, какую я мог допустить ошибку, используя Copy/Paste? ;)
Не знаю, как у Вас, я у меня Ваш код не работает.
← →
ssk (2004-03-17 11:50) [13]>Dimaxx © (16.03.04 22:06) [10]
Пустой? А что же ему опознавать
согласен 100%, но все же смотрим вопрос: каким образом мне отследить попытку открытия сидирома
а ведь неизвестно, есть ли диск в приводе или нет...
← →
ssk (2004-03-17 11:50) [13]>Dimaxx © (16.03.04 22:06) [10]
Пустой? А что же ему опознавать
согласен 100%, но все же смотрим вопрос: каким образом мне отследить попытку открытия сидирома
а ведь неизвестно, есть ли диск в приводе или нет...
← →
Dimaxx © (2004-03-17 23:42) [14]Так и говори "любую попытку, вне зависимости от наличия диска". В MCI вроде есть функция проверки статуса сидюка, но не помню какая.
2 Gero: Надеюсь, из раздела private скопировал объяву? Могу выслать работающий пример с полным исходником.
← →
Dimaxx © (2004-03-17 23:42) [14]Так и говори "любую попытку, вне зависимости от наличия диска". В MCI вроде есть функция проверки статуса сидюка, но не помню какая.
2 Gero: Надеюсь, из раздела private скопировал объяву? Могу выслать работающий пример с полным исходником.
← →
Gero © (2004-03-17 23:48) [15]> Могу выслать работающий пример с полным исходником
Высылайте, мне будет интересно посмотреть.
← →
Gero © (2004-03-17 23:48) [15]> Могу выслать работающий пример с полным исходником
Высылайте, мне будет интересно посмотреть.
← →
Diamond Cat © (2004-03-17 23:59) [16]Когда-то давно эта тема уже обсуждалась, и все пришли к выводу , что отследить открытие лотка сд невозможно если лоток открывается с помощью кнопки, если открывать с помощью команды меню то нет проблем. Поищите в архивах за прошлый год
← →
Diamond Cat © (2004-03-17 23:59) [16]Когда-то давно эта тема уже обсуждалась, и все пришли к выводу , что отследить открытие лотка сд невозможно если лоток открывается с помощью кнопки, если открывать с помощью команды меню то нет проблем. Поищите в архивах за прошлый год
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.035 c