Форум: "Потрепаться";
Текущий архив: 2005.09.18;
Скачать: [xml.tar.bz2];
Вниз
Зацените систему управления CD-ROM ом Найти похожие ветки
← →
NewWonder © (2005-08-17 20:43) [0]http://freesoft.ru/?id=667531
← →
NewWonder © (2005-08-17 20:44) [1]Глупость, конечно, но всё же :)
← →
KilkennyCat © (2005-08-17 20:45) [2]не работает на ноутбуке.
← →
NewWonder © (2005-08-17 20:46) [3]Как не работает?
← →
NewWonder © (2005-08-17 20:47) [4]Пробовал выбирать оптические приводы?
← →
KilkennyCat © (2005-08-17 20:48) [5]
> Как не работает?
Не закрывает!!!
← →
NewWonder © (2005-08-17 20:50) [6]А открывает?
← →
NewWonder © (2005-08-17 20:52) [7]Надо же :( Вот млин... Надо дорабатывать...
← →
KilkennyCat © (2005-08-17 20:52) [8]открывает. Но закрывать один фиг руками приходится. Так что, дорабатывай. :)))
← →
vrem (2005-08-17 20:55) [9]:) срочно дорабатывать :)
← →
AlexWlad © (2005-08-17 20:57) [10]KilkennyCat © (17.08.05 20:52) [8]
В смысле - MessageBox("Пожалуйста, закройте сидюк", MB_OK); ???
← →
DeadMeat © (2005-08-17 22:51) [11]
> Не закрывает!!!
Во блин... сам не сразу врубился.. Хе..
ДОРАБАТЫВАТЬ!! ОБЯЗАТЕЛЬНО!!
---
...Death Is Only The Begining...
← →
BiN © (2005-08-17 22:57) [12]"Система управления CD-ROM"ом" - это первая стадия глюкотворчества, за которой (или во время оной) обычно следует "запуздыривание-иконки-туда-где-часики". Ну а верхом апофеоза системного суперкодинга следует, очевидно, считать скрытие процесса под Win98.
ничего личного.
← →
Джо © (2005-08-17 23:14) [13]
> [12] BiN © (17.08.05 22:57)
Да, троица неразлучная.
← →
NewWonder © (2005-08-18 14:52) [14]А у меня закрывает :( В чём может быть причина.
О проге. Несерьёзная софтина, конечно. Но писал больше для себя (расположение системника таково), кроме того, один CD-ROM не открывается по нажатию... Так что не такая уж бесполезная программа.
← →
Kerk © (2005-08-18 14:54) [15]
> Зацените систему управления CD-ROM"ом
А нафига она нужна?
← →
Rouse_ © (2005-08-18 14:57) [16]Хочу систему управления дисководом ;)
← →
NewWonder © (2005-08-18 14:59) [17]1) не видит CDюк после ручново открытия (с помошью кнопки) - так у моего друга
2) системник далековат - это у меня
3) кнопка заедает - тоже у меня
4) посмотрите сами: http://www.worlds3d.mirgames.ru/cdc_2_1.htm
← →
Плохиш © (2005-08-18 15:32) [18]4. Новое в версии 2.1
- Трёхмерная модель Вашего CD-ROM’а;
У меня неправильную модель показывает.
← →
Игорь Шевченко © (2005-08-18 15:37) [19]Программист должен сделать в своей жизни три дела:
1. Запихнуть иконку в трей (туда, где часики)
2. Скрыть процесс от Ctrl+Alt+Del в XP
3. Создать самоудаляющуюся программу.
В процессе реализации этих идей программист обязан наступить на все возможные грабли, которые в избытке раскиданы на пути, прежде чем к нему придет просветление и он спросит себя: "А что это я фигней маюсь ?".
← →
Antonn © (2005-08-18 17:47) [20]1. About - прочитать все надписи еще раз:)
2. Курсор на ссылке надо менять
3. Изменение размеров формы - смотрели что происходит с 3Д?
4. Как то не синхронно на 3Д подставка заезжает, у меня уже лоток зактывается, пока она начнет двигаться.
5. Битмапы на кнопках/меню надо получше обработать, края рваные, совсем не смотрится.
6. В выборе приводов надо бы убрать винты(все таки проверил, вдруг HDD вывалится:))
7. Звук - не смешно...
8. Вроде написано: "не требует установки, не сорит...", какого она копируется в C:\Windows и заносит себя в реестр???
9. хм.. 12960Кб В оперативке, 8628Кб в Виртуальной памяти. Не много ли?
10. Прозрачность или убрать, или вывести регулятор.
← →
KilkennyCat © (2005-08-18 17:58) [21]
> [14] NewWonder © (18.08.05 14:52)
> А у меня закрывает
У тебя на ноутбуке закрывает?! Я хочу такой ноутбук... Наверное, и дисплей тоже автоматически работает, на откр-закр...:))
> 19] Игорь Шевченко © (18.08.05 15:37)
> Программист должен сделать в своей жизни три дела:
>
> 1. Запихнуть иконку в трей (туда, где часики)
> 2. Скрыть процесс от Ctrl+Alt+Del в XP
> 3. Создать самоудаляющуюся программу.
>
> В процессе реализации этих идей программист обязан наступить
> на все возможные грабли, которые в избытке раскиданы на
> пути, прежде чем к нему придет просветление и он спросит
> себя: "А что это я фигней маюсь ?".
В процессе реализации этих идей программист обязан отсидеть на форумах 1024 человеко\часов, потратить в десять раз больше этих же часов, но других человеков. А просветление может и не прийти.
← →
oldman © (2005-08-18 18:01) [22]
> Игорь Шевченко © (18.08.05 15:37) [19]
> Программист должен сделать в своей жизни три дела:
>
> 1. Запихнуть иконку в трей (туда, где часики)
> 2. Скрыть процесс от Ctrl+Alt+Del в XP
> 3. Создать самоудаляющуюся программу.
1. Это - посадить дерево
2. Это - построить дом
3. Это - родить сына
:))))))))
← →
Игорь Шевченко © (2005-08-18 18:01) [23]KilkennyCat © (18.08.05 17:58) [21]
> В процессе реализации этих идей программист обязан отсидеть
> на форумах 1024 человеко\часов, потратить в десять раз больше
> этих же часов, но других человеков. А просветление может
> и не прийти.
Тогда рекомендуется народный метод лечения сколиоза :)
← →
Rouse_ © (2005-08-18 18:03) [24]Всетаки не пойму прикола. Сразу говорю прогу не качал...
Ну узнал ты как открывать/закрывать лоток, а смысл писать целую тулзу? Вот узнал я как делать ShellExecute, чичас думаю - а может написать тулзу которая файлы запускает? Даже не смешно...
ЗЫ: Ничего личного, просто не понятна логика, у программиста она должна присутствовать де факто...
← →
Юрий Зотов © (2005-08-18 18:42) [25]РЕЦЕНЗИЯ на программу CD Closer v2.1
Когда в описании программы я прочитал фразу "функциональность, по сравнению с первой версией, возросла многократно", то подумал, что вторая версия, видимо, умеет не только закрывать лоток (как первая, судя по ее названию), но еще и умеет его открывать (потому как больше с CD-приводом ничего делать и не нужно - ведь диск в него все равно придется запихивать ручками).
Но когда я прочитал [8], то понял, что ошибся. Оказывается, версия 2 является не расширением версии 1, а ее дополнением. Потому что версия 1 умела только закрывать лоток, а версия 2, как выяснилось, умеет только его открывать.
Поскольку, как уже говорилось, набор этих двух операций является полным, то автора можно поздравить - он завершил большую и сложную работу по созданию законченного и полнофункционального программного комплекса. Надеюсь, не забыл приложить и справку, а дистрибутив обернуть в инсталлятор.
Для тех, кто не ходил по ссылке, привожу краткое описание программного комплекса. Он состоит из 2-х программ (правда, почему-то они называются одинаково и отличаются лишь номером версии - но не верьте, это совершенно разные программы, дополняющие одна другую до полного комплекса). С точки зрения пользователя, одна из этих двух программ умеет открывать лоток CD, другая - закрывать его. А с точки зрения программиста, каждая программа содержит в себе ровно один обработчик OnClick, и в каждом из этих двух обработчиков написана ровно одна строка, сдернутая с Инета. Комплекс разработан (цитирую) "по многочисленным просьбам пользователей" фирмой с красивым названием "студия Dream Software".
Скачивать этот шедевр софтверного творчества я все же не стал - мне не влом и пальцем на кнопку нажать. Даже проще, и никаких глюков. Гарантированно.
======================================
Данная рецензия любезно предоставлена фирмой с ваще афигительно красивым названием (и 36-ю годами на софтверном рынке):
YurZoSoft SuperDream PuperCool Inc. (R) (TM) (C) 1969-2005.
← →
Rouse_ © (2005-08-18 18:45) [26]> 1969-2005.
Юр ты как родился сразу за комп? ;)
← →
Rouse_ © (2005-08-18 18:47) [27]Блин, не так посчитал :))))))))))))
← →
Rouse_ © (2005-08-18 18:49) [28]Кста... к слову будет сказано:
> студия Dream Software = студия Сонное Программное обеспечение ;)
Теперь понятно при чем тут сидюк :)))))))))
← →
Юрий Зотов © (2005-08-18 18:52) [29]> Rouse_ © (18.08.05 18:45) [26]
Не, я в 69-м написал свою первую программу. Она два плюс два складывала, причем тоже с глюками. И, конечно, же, я сразу придумал "ваще афигительно красивое" название фирмы, а свой шедевр стал активно распространять. Вот только жаль, что тогда Инета не было, а то Билли щас бы в сторонке отдыхал. Куря нервно.
← →
TUser © (2005-08-18 18:52) [30]> Но писал больше для себя (расположение системника таково),
Тут один уже писал для себя прогу, - чтобы разбираться в своих старых исходниках :)
А по поводу расположения системника - очень интересно. В смысле - я обычно выдвигаю лоток CD чтобы вставить туда диск или вынуть оттуда. То есть тянуться-то к нему все равно придется. Или у тебя этот процевв - задвигания и выдвигания - самодостаточен?
← →
Юрий Зотов © (2005-08-18 18:54) [31]> TUser © (18.08.05 18:52) [30]
> процевв - задвигания и выдвигания - самодостаточен?
"Входит... и выходит..."
(с) Ослик Иа-Иа.
← →
Плохиш © (2005-08-18 19:03) [32]Удалено модератором
← →
vrem (2005-08-18 19:16) [33]автор, про прикол - на ноуте сидиром сам не закрывается, нужно рукой задвигать его до щелчка(не кнопкой!). когда же нужно открыть, то крышка сидирома всего лишь отщёлкивается, и опять же рукой сидиром выдвигаешь.
← →
Agent13 © (2005-08-18 19:52) [34]Н-да, внушаить. Выдвигалка ЦД с 3Д-анимацией. Я бы до такого не додумался...
← →
delirium-system-2 (2005-08-18 19:55) [35]TUser © (18.08.05 18:52) [30]
Телекинез.
← →
Antonn © (2005-08-18 19:59) [36]TUser © (18.08.05 18:52) [30]
Или у тебя этот процевв - задвигания и выдвигания - самодостаточен?
у него СД-чейджер
← →
delirium-system-2 (2005-08-18 20:22) [37]Кстати, вот реальная идея.
Сделай улититу, ведущую базу данных серийных номеров CD. При вставке в дисковод CD с серийным номером, занесенным в БД, улитита (оформленная в виде сервиса) должна говорить: "Извините, мест нет." и выплевывать диск. Обязательно с открытыми исходниками. Буду пользоваться, обещаю.
← →
TUser © (2005-08-18 20:54) [38]> delirium-system-2
А зачем, интересно, нужна такая утилита.
← →
Defunct © (2005-08-18 20:57) [39]CD Closer v2.1
Утилита предназначенная для программного управления оптическими накопителями. Изначально я писал программку просто для интереса. После написания первой версии программы я показал её нескольким знакомым программистам и она всем очень понравилась. Мне указали наиболее очевидные недостатки программки, и вот появилась вторая версия программы CD Closer! В программе было реализовано много интересностей, а функциональность, по сравнению с первой версией, возросла многократно. Слышал много отзывов вроде «сложно представить более навороченную систему управления подставкой для кофе…». Прошёл год. За это время Nic Software стала студией Dream Software. И вот, по многочисленным просьбам пользователей, я решил доработать старенькую программу.
Как это констрастирует с этим:
NewWonder © (17.08.05 20:44) [1]
Глупость, конечно, но всё же :)
← →
delirium-system-2 (2005-08-18 21:02) [40]TUser © (18.08.05 20:54) [38]
Для усложнения жизни пользователям.
← →
КаПиБаРа © (2005-08-19 07:52) [41]ТЗ на программу для CD-Rom`a
1. Основной модуль. Кушает не более 50 кБ. Не сидит в трее.
1.1. При закрытии лотка определяет содержимое диска
1.2. При обнаружении киношки - запускает проигрыватель
1.3. При обнаружении фотографий - запускает просмотрщик
1.4. При обнаружении вирусов - выполняет их.
1.5. При обнаружении других заданных параметров выполняет еще что-то. Например копирование файлов в определенное место (синхронизация) и т.д. и т.п.
1.6. Перед выполнением любых действий выдает сообщение с возможностью отмены. Если действие не критичное (например запуск кино), то возможно автоматическое выполнение, если не нажата отмена по истечении определенного времени.
1.7. Стартует как сервис или в автозагрузке.
2. Модуль управления.
2.1. Всевозможные настройки для основного модуля.
2.2. Запуск-останов основного модуля
2.3. Открывание-закрывание лотка CD-Rom`а
2.4. Можно запуздырить иконку в трей
← →
boriskb © (2005-08-19 08:40) [42]NewWonder © (17.08.05 20:43)
Не печалься.
Все ты правильно делал, кроме одного:
Не надо было эту прогу рекламировать на весь инет.
Пиши еще и не обижайся на здешних - им только дай позубоскалить :))
← →
Юрий Зотов © (2005-08-19 11:54) [43]> boriskb © (19.08.05 08:40) [42]
Вот с этим согласен абсолютно. Писать - надо. Обязательно надо. И выдвигалки лотков, и все остальное.
А вот гнуть пальцы а-ля "студия Dream Software" - это не надо. Смешно это. Поскольку программка-то - простейшая. Учебная. И до "Dream Software" ей - как до Луны.
← →
KilkennyCat © (2005-08-19 12:04) [44]
> 41] КаПиБаРа © (19.08.05 07:52)
> ТЗ на программу для CD-Rom`a
> 2. Модуль управления.
2.5 Remote control (shvabra or TV-pult)
← →
NewWonder © (2005-08-19 12:46) [45]
> ТЗ на программу для CD-Rom`a
>
> 1. Основной модуль. Кушает не более 50 кБ. Не сидит в трее.
> 1.1. При закрытии лотка определяет содержимое диска
> 1.2. При обнаружении киношки - запускает проигрыватель
> 1.3. При обнаружении фотографий - запускает просмотрщик
> 1.4. При обнаружении вирусов - выполняет их.
> 1.5. При обнаружении других заданных параметров выполняет
> еще что-то. Например копирование файлов в определенное место
> (синхронизация) и т.д. и т.п.
> 1.6. Перед выполнением любых действий выдает сообщение с
> возможностью отмены. Если действие не критичное (например
> запуск кино), то возможно автоматическое выполнение, если
> не нажата отмена по истечении определенного времени.
> 1.7. Стартует как сервис или в автозагрузке.
>
> 2. Модуль управления.
> 2.1. Всевозможные настройки для основного модуля.
> 2.2. Запуск-останов основного модуля
> 2.3. Открывание-закрывание лотка CD-Rom`а
> 2.4. Можно запуздырить иконку в трей
А вот это идея!
← →
Vlad Oshin © (2005-08-19 13:06) [46]а я вот думаю: чего тут м/б на 50 постов с привлечением многих знаменитостей?
а тут, как обычно, 2х2 считают, оказывается :)
← →
имя (2005-08-19 13:14) [47]Удалено модератором
← →
Rouse_ © (2005-08-19 13:14) [48]Я в свое время придумал что написать. Руки пока не дотягиваются. Идея такова. Ловим сообщения WM_DEVICECHANGE c кодом WParam = DBT_DEVICEARRIVAL, вставлен новый компакт. Берем его серийник смотрим есть ли в базе. Если нет - помещаем в базу ну и там какую нить формочку чтоб пользовател ввел описание сидюка. А теперь: все раздают компакт диски а потом пытаються вспомнить "кому ж я его отдал?". Так вот когда отдаем компакт - лезем в баз и помечаем, такой то сидюк ушел дяде Васе, такой то дяде Пете и т.п. Можно еще прибабахов навернуть. Былоб время давно бы такую тулзу написал...
← →
kot andrei © (2005-08-19 13:17) [49]Rouse_ © (19.08.05 13:14) [48]
такую тузлу кто-то из здешних уже писал, даже тестить помоему предлагал, помню там еще регулярно вываливалось List of bounds (-1)
← →
Vlad Oshin © (2005-08-19 13:21) [50]дарю идею простейшей программы:
БД результатов игр в футбол. Возможность закачки последней ин-фы.(проект не умрет пока есть футбол :))
Всякие сортировки. Открытый формат подразумевает версии сторонних разработчиков, плагинов и т.п.
Задача: подумать, сделать, заплатить операторам на набивку статистики.
← →
Rouse_ © (2005-08-19 13:32) [51]> помню там еще регулярно вываливалось List of bounds (-1)
Отвечю словами дяди Юры: ЭТО писал программист, ЭТО нужно переписывать :)
← →
delirium-system-2 (2005-08-19 13:32) [52]Rouse_ © (19.08.05 13:14) [48]
Интересно увидеть реально работающий код пойматия WM_DEVICECHANGE c кодом WParam = DBT_DEVICEARRIVAL без использования DDK и написания всяческих фильтров файловых систем. Весьма непросто это сделать.
← →
Rouse_ © (2005-08-19 13:37) [53]> Весьма непросто это сделать.
Да ну...unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
const
// GUID взят из INF файла драйвера
ClassGuid: TGUID = "{36fc9e60-c465-11cf-8056-444553540001}";
DBT_DEVTYP_DEVICEINTERFACE = $00000005;
//Event that has occurred. This parameter can be one of the following values from the Dbt.h header file.
// A device has been added to or removed from the system.
// Windows NT 4.0 and Windows Me/98/95: This value is not supported.
DBT_DEVNODES_CHANGED = $00000007;
// Permission is requested to change the current configuration (dock or undock).
DBT_QUERYCHANGECONFIG = $00000017;
// The current configuration has changed, due to a dock or undock.
DBT_CONFIGCHANGED = $00000018;
// A request to change the current configuration (dock or undock) has been canceled.
DBT_CONFIGCHANGECANCELED = $00000019;
// A device or piece of media has been inserted and is now available.
DBT_DEVICEARRIVAL = $00008000;
// Permission is requested to remove a device or piece of media.
// Any application can deny this request and cancel the removal.
DBT_DEVICEQUERYREMOVE = $00008001;
// A request to remove a device or piece of media has been canceled.
DBT_DEVICEQUERYREMOVEFAILED = $00008002;
// A device or piece of media is about to be removed. Cannot be denied.
DBT_DEVICEREMOVEPENDING = $00008003;
// A device or piece of media has been removed.
DBT_DEVICEREMOVECOMPLETE = $00008004;
// A device-specific event has occurred.
DBT_DEVICETYPESPECIFIC = $00008005;
// A custom event has occurred.
// Windows NT 4.0 and Windows 95: This value is not supported.
DBT_CUSTOMEVENT = $00008006;
// The meaning of this message is user-defined.
DBT_USERDEFINED = $0000FFFF;
type
PDEV_BROADCAST_DEVICEINTERFACE = ^TDEV_BROADCAST_DEVICEINTERFACE;
TDEV_BROADCAST_DEVICEINTERFACE = packed record
dbcc_size: DWORD;
dbcc_devicetype: DWORD;
dbcc_reserved: DWORD;
dbcc_classguid: TGUID;
dbcc_name: PCHAR;
end;
TForm1 = class(TForm)
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
AdvWnd: HWND;
hNotify: HDEVNOTIFY;
procedure WMDeviceChange(var Message: TMessage);
end;
function RegisterDeviceNotificationA(hRecipient: THandle;
NotificationFilter: PDEV_BROADCAST_DEVICEINTERFACE;
Flags: DWORD): HDEVNOTIFY; stdcall; external user32;
function UnregisterDeviceNotification(Handle: HDEVNOTIFY): BOOL; stdcall; external user32;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
NotificationFilter: TDEV_BROADCAST_DEVICEINTERFACE;
begin
NotificationFilter.dbcc_size := SizeOf(NotificationFilter);
NotificationFilter.dbcc_devicetype := DBT_DEVTYP_DEVICEINTERFACE;
NotificationFilter.dbcc_classguid := ClassGuid;
NotificationFilter.dbcc_name := PChar("");
hNotify := RegisterDeviceNotificationA(Handle, @NotificationFilter,
DEVICE_NOTIFY_WINDOW_HANDLE);
AdvWnd := AllocateHWnd(WMDeviceChange);
end;
// Лог:
{
Вставили ключ
DBT_DEVNODES_CHANGED
DBT_DEVNODES_CHANGED
Вытащили ключ
DBT_DEVNODES_CHANGED
Вставили флэш
DBT_DEVNODES_CHANGED
DBT_DEVNODES_CHANGED
DBT_DEVNODES_CHANGED
DBT_DEVNODES_CHANGED
DBT_DEVNODES_CHANGED
DBT_DEVICEARRIVAL
DBT_DEVNODES_CHANGED
Вытащили флэш
DBT_DEVNODES_CHANGED
DBT_DEVNODES_CHANGED
DBT_DEVNODES_CHANGED
DBT_DEVICEREMOVECOMPLETE
Подключили сетевой диск
DBT_DEVICEARRIVAL
Отключили сетевой диск
DBT_DEVICEREMOVECOMPLETE
подрубили через SubSt
DBT_DEVICEARRIVAL
откулючили через subst
DBT_DEVICEREMOVECOMPLETE
}
procedure TForm1.WMDeviceChange(var Message: TMessage);
begin
with Message do
begin
if Msg = WM_DEVICECHANGE then
case WParam of
DBT_DEVNODES_CHANGED: Memo1.Lines.Add("DBT_DEVNODES_CHANGED");
DBT_QUERYCHANGECONFIG: Memo1.Lines.Add("DBT_QUERYCHANGECONFIG");
DBT_CONFIGCHANGED: Memo1.Lines.Add("DBT_CONFIGCHANGED");
DBT_CONFIGCHANGECANCELED: Memo1.Lines.Add("DBT_CONFIGCHANGECANCELED");
DBT_DEVICEARRIVAL: Memo1.Lines.Add("DBT_DEVICEARRIVAL");
DBT_DEVICEQUERYREMOVE: Memo1.Lines.Add("DBT_DEVICEQUERYREMOVE");
DBT_DEVICEQUERYREMOVEFAILED: Memo1.Lines.Add("DBT_DEVICEQUERYREMOVEFAILED");
DBT_DEVICEREMOVEPENDING: Memo1.Lines.Add("DBT_DEVICEREMOVEPENDING");
DBT_DEVICEREMOVECOMPLETE: Memo1.Lines.Add("DBT_DEVICEREMOVECOMPLETE");
DBT_DEVICETYPESPECIFIC: Memo1.Lines.Add("DBT_DEVICETYPESPECIFIC");
DBT_CUSTOMEVENT: Memo1.Lines.Add("DBT_CUSTOMEVENT");
DBT_USERDEFINED: Memo1.Lines.Add("DBT_USERDEFINED");
end;
end;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
UnregisterDeviceNotification(hNotify);
DeallocateHWnd(AdvWnd);
end;
end.
← →
Игорь Шевченко © (2005-08-19 13:38) [54]delirium-system-2 (19.08.05 13:32) [52]
Дарю.unit main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
type
TfMain = class(TForm)
Label1: TLabel;
lbChangeCount: TLabel;
ListView: TListView;
procedure FormCreate(Sender: TObject);
private
FCount : Integer;
procedure WMDeviceChange (var Message : TMessage);
message WM_DEVICECHANGE;
procedure UpdateCount;
procedure RegisterEvent (EventCode : Cardinal);
end;
var
fMain: TfMain;
implementation
uses
JwaDbt;
{$R *.dfm}
{ TfMain }
procedure TfMain.UpdateCount;
begin
lbChangeCount.Caption := IntToStr(FCount);
end;
procedure TfMain.WMDeviceChange(var Message: TMessage);
begin
RegisterEvent (Message.WParam);
inherited;
UpdateCount;
end;
procedure TfMain.FormCreate(Sender: TObject);
begin
UpdateCount;
end;
procedure TfMain.RegisterEvent(EventCode: Cardinal);
var
S : string;
begin
Inc(FCount);
with ListView.Items.Add do begin
Caption := IntToStr(FCount);
case EventCode of
DBT_CONFIGCHANGECANCELED:
S := "DBT_CONFIGCHANGECANCELED";
DBT_CONFIGCHANGED:
S := "DBT_CONFIGCHANGED";
DBT_CUSTOMEVENT:
S := "DBT_CUSTOMEVENT";
DBT_DEVICEARRIVAL:
S := "DBT_DEVICEARRIVAL";
DBT_DEVICEQUERYREMOVE:
S := "DBT_DEVICEQUERYREMOVE";
DBT_DEVICEQUERYREMOVEFAILED:
S := "DBT_DEVICEQUERYREMOVEFAILED";
DBT_DEVICEREMOVECOMPLETE:
S := "DBT_DEVICEREMOVECOMPLETE";
DBT_DEVICEREMOVEPENDING:
S := "DBT_DEVICEREMOVEPENDING";
DBT_DEVICETYPESPECIFIC:
S := "DBT_DEVICETYPESPECIFIC";
DBT_DEVNODES_CHANGED:
S := "DBT_DEVNODES_CHANGED";
DBT_QUERYCHANGECONFIG:
S := "DBT_QUERYCHANGECONFIG";
DBT_USERDEFINED:
S := "DBT_USERDEFINED";
else
S := Format ("Unknown Event %d", [EventCode]);
end;
SubItems.Add(S);
end;
end;
end.object fMain: TfMain
Left = 192
Top = 107
Width = 544
Height = 375
Caption = "fMain"
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = "MS Sans Serif"
Font.Style = []
OldCreateOrder = False
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 20
Top = 12
Width = 81
Height = 13
Caption = "Device changes:"
end
object lbChangeCount: TLabel
Left = 108
Top = 12
Width = 6
Height = 13
Caption = "0"
end
object ListView: TListView
Left = 4
Top = 32
Width = 525
Height = 309
Columns = <
item
Caption = "Event "#8470
Width = 55
end
item
Caption = "Kind"
Width = 180
end>
TabOrder = 0
ViewStyle = vsReport
end
end
← →
Rouse_ © (2005-08-19 13:39) [55]> delirium-system-2 (19.08.05 13:32) [52]
Кстати учите матчасть, это Platform SDK: Device I/O
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/devio/base/wm_devicechange.asp
← →
delirium-system-2 (2005-08-19 13:42) [56]И работает (в данный момент delphi не имеется)?
Выясним, что не так делал...
← →
Игорь Шевченко © (2005-08-19 13:43) [57]delirium-system-2 (19.08.05 13:42) [56]
Не работало бы, я б не постил
← →
boriskb © (2005-08-19 13:45) [58]Vlad Oshin © (19.08.05 13:21) [50]
дарю идею простейшей программы:
В инете есть много таких.
Я года 3 юзал такую - очень качественно сделана.
И базы (обновления) в инете поддерживались:
Чемпионаты чуть не всех европейский стран - в том числе России;
Кубки.
Разнообразнейшая статистика.
Насколько помню - на каком то Питерском сайте она лежала.
Урл сейчас не вспомню
← →
Rouse_ © (2005-08-19 13:46) [59]Мне вообще интересно узнать, как можно написать, чтоб не работало? :)
← →
boriskb © (2005-08-19 13:48) [60]Rouse_ © (19.08.05 13:46) [59]
Мне вообще интересно узнать, как можно написать, чтоб не работало? :)
Приходи ко мне - научу :)))))
← →
Андрей Жук © (2005-08-19 13:50) [61]
> Rouse_ © (19.08.05 13:14) [48] [Новое
>сообщение][Ответить]
> Я в свое время придумал что написать. Руки пока не
> дотягиваются. Идея такова. Ловим сообщения
> WM_DEVICECHANGE c кодом WParam = DBT_DEVICEARRIVAL,
> вставлен новый компакт. Берем его серийник смотрим
> есть ли в базе. Если нет - помещаем в базу ну и там
> какую нить формочку чтоб пользовател ввел описание
> сидюка. А теперь: все раздают компакт диски а потом
> пытаються вспомнить "кому ж я его отдал?". Так вот
> когда отдаем компакт - лезем в баз и помечаем, такой
> то сидюк ушел дяде Васе, такой то дяде Пете и т.п.
> Можно еще прибабахов навернуть. Былоб время давно бы
> такую тулзу написал...
Ну а пользы от того, что ты будешь ловить вставки сидюка? Можно простую БД для этой цели использовать, все одно ручками придется указывать, что отдал и кому отдал
← →
kot andrei © (2005-08-19 13:54) [62]Андрей Жук © (19.08.05 13:50) [61]
польза в том что можно сканировать содержимое диска , хотя бы какие папки на нем есть,- и сохранять, а потом легко вспомнить что это был за диск, и как много ты потерял отдав его дяде Васе
← →
КаПиБаРа © (2005-08-19 14:19) [63]Rouse_ © (19.08.05 13:14) [48]
Можно еще прибабахов навернуть
Например сканирование диска на читаемость. А то отдашь хороший, а вернут покоцаный.
Андрей Жук © (19.08.05 13:50) [61]
Ну а пользы от того, что ты будешь ловить вставки сидюка?
Вставил - диск. Ткнул мышкой на дядю Васю. Все. Факт передачи зарегистрирован.
← →
Андрей Жук © (2005-08-19 14:56) [64]
> Вставил - диск. Ткнул мышкой на дядю Васю. Все. Факт
> передачи зарегистрирован.
То еще нужно комп включать :)
← →
Rule © (2005-08-19 15:57) [65]Андрей Жук © (19.08.05 14:56) [64]
согласен, в этом плане наладоннки рулит, достал ткнул в имя диска ткнул в дядю Васю и все кирдык ...
← →
КаПиБаРа © (2005-08-19 16:01) [66]Андрей Жук © (19.08.05 14:56) [64]
Для этого его нужно сначала выключить :)
← →
KilkennyCat © (2005-08-19 16:03) [67]ДядямВасям отдавать оригинал?! Фи!
← →
Vlad Oshin © (2005-08-19 16:09) [68]
> boriskb © (19.08.05 13:45) [58]
хорошо ):
просто, я эту идею с 2000 года дарю.
и подарился бы сам, еслиб была причная вещь.
← →
delirium-system-2 (2005-08-19 16:19) [69]Rouse_ © (19.08.05 13:46) [59]
ГЫ. Раскопал свой старый код, так практически аналогично [53], только GUID был DEVCLASS_CDROM, однако, после замены GUID`а ничего не изменилось. Рассказывайте в чем секрет, зачем еще одна оконная процедура?
← →
Rouse_ © (2005-08-19 16:33) [70]> Рассказывайте в чем секрет, зачем еще одна оконная процедура?
Да можно и не заводить ее, можно сделать как у Игоря. Хотя я понял в чем твоя проблема. Ты наверное пытался поймать LPT устройство :) Там такие штучки проходят не сразу в отличие от USB :)
Этот код я тестировал для Guardant Stealth 2 - электронный ключик...
← →
MeF Dei Corvi © (2005-08-19 16:36) [71]
> ткнул в имя диска ткнул в дядю Васю
Бедный дядя Вася :) в него уже наладонниками тычат :)
← →
ISP © (2005-08-19 17:42) [72]> Rouse_ © (19.08.05 13:14) [48]
> то сидюк ушел дяде Васе, такой то дяде Пете и т.п.
> Можно еще прибабахов навернуть.
Можно камеру присобачить для, так сказать, визуальной документализации факта передачи. С модулем ИИ для определения имени/фамилии/пола по фотографии. Фиг тогда кто отвертится.
← →
delirium-system-2 (2005-08-19 19:56) [73]Rouse_ © (19.08.05 16:33) [70]
Как выяснилось, нотификация с CD-ROM приходит только при включенном AutoStart, который у меня всегда отключен. Метод не очень надежный.
← →
[lamer]Barmaglot © (2005-08-19 23:27) [74]На сколько я помню, этот код не работает в 98-м...
← →
delirium-system-2 (2005-08-19 23:30) [75][lamer]Barmaglot © (19.08.05 23:27) [74]
Работает, во всяком случае при захвате CD-ROM VirtualPC Ж)
Страницы: 1 2 вся ветка
Форум: "Потрепаться";
Текущий архив: 2005.09.18;
Скачать: [xml.tar.bz2];
Память: 0.69 MB
Время: 0.013 c