![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
новое подключение Flash или ZIV
Doom-2 © (2007-05-06 10:39:00)Данная функция должна отследить новое подключение Flash или ZIV-а. Я поместил её в OnTimer1 и началось...
- Return value of function 'WindowProc' might be undefined
- Не заданы все параметры... а что такое: (Hwn, msg: longint): longint; stdcall мне не совсем понятно!
Из-за своей необразованности, не могу разобраться с кодом:
const DBT_DEVNODES_CHANGED = $7;
function WindowProc(Hwn, msg: longint): longint; stdcall;
var c: char;
drive: string;
begin
if msg=WM_DEVICECHANGE
then begin
if wpr = DBT_DEVNODES_CHANGED then //Состояние устройств изменилось
begin
for c := 'D' to 'Z' do // Определяем букву устройства
begin
drive := c + ':\';
case GetDriveType(PChar(drive)) of //Проверяем тип устройства
DRIVE_REMOVABLE: // Если флэха, то...
begin
ShowMessage('Обнаружен новый диск!');
end;
end;
end;
end;
end;
end;
Doom-2 (2007-05-06 12:15:00) [1]С горем пополам разобрался:
type
TForm1 = class(TForm)
public
procedure CD(var Msg: TMessage); message WM_DEVICECHANGE;
end;
const DBT_DEVNODES_CHANGED = $7;
procedure TForm1.CD(var Msg: TMessage);
var c: char;
drive: string;
begin
case Msg.WParam of
DBT_DEVNODES_CHANGED:
begin
for c := 'D' to 'Z' do // Определяем букву устройства
begin
drive := c + ':\';
case GetDriveType(PChar(drive)) of //Проверяем тип устройства
DRIVE_REMOVABLE: // Если флэха, то...
begin
ShowMessage('Новый диск '+drive);
end;
end;
end;
end;
end;
end;
Возник ещё вопрос:
Почему при подключении Flash-ки сообщение "Новый диск F:\" появляется нормально - 1 раз. Но при безопасном отключении оно выскакивает трижды! Как это исправить?
Virgo_Style (2007-05-06 10:48:00) [2]Doom-2 (06.05.07 10:40) [1]
Это какой-то ужас, по-моему
Doom-2 (2007-05-06 10:40:00) [3]Как заставить его работать?