Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.18;
Скачать: CL | DM;

Вниз

Зацените систему управления 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;
Скачать: CL | DM;

Наверх




Память: 0.7 MB
Время: 0.043 c
9-1116704296
parovoZZ
2005-05-21 23:38
2005.09.18
Вопрос по glTexGenfv


5-1099337235
Евгыш
2004-11-01 22:27
2005.09.18
Установка компонента


3-1123403894
makvell
2005-08-07 12:38
2005.09.18
Компонент для отображения текста и графики?


14-1124687175
rentgen
2005-08-22 09:06
2005.09.18
Кому не сложно прокоментировать оформление программы?


14-1124578328
lauren
2005-08-21 02:52
2005.09.18
kursi Everest