| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Кнопка резервного копирования в HDD |
| Автор: Artem148 13.4.2011, 19:34 |
| Доброго времени суток! У меня есть в кожухе для HDD кнопка резервного копирования. Можно ли перехватить сообщение о её нажатии? Заранее спасибо! |
| Автор: jhonyxakep 14.4.2011, 05:08 |
| У HDD есть какой-нибудь софт, который так умеет делать? |
| Автор: Artem148 14.4.2011, 18:58 |
| Да, есть стандартная голимая программа, шла на оптическом диски. |
| Автор: Snowy 15.4.2011, 00:40 |
| Вот выключи ее и лови сообщения. Выясни какое сообщение шлется броадкастом, при нажат на кнопу. Любая тулза по отлову сообщений сгодится (например стандартный spy++) |
| Автор: jhonyxakep 15.4.2011, 07:19 |
| Еще можно попробовать поковырять её дллки |
| Автор: Artem148 15.4.2011, 15:24 |
| Спасибо, попрубую! |
| Автор: Artem148 15.4.2011, 16:50 |
| Можно поподробней о SPY++ ? |
| Автор: Snowy 15.4.2011, 17:07 |
| А что тебя интересует? http://forum.vingrad.ru/topic-127179.html Выбираешь окно или процесс, жмёшь правой кнопой и просишь Messages. Тебе покажут все сообщения. Жми кнопу на устройстве и смотри, происходит ли при этом что-нибудь. Для броадкастовых сообщений (как, например, подключение флешки) можешь выбрать любое окно или процесс - они шлются всем. Если такого сообщения нет, то всё гораздо сложнее и неочевиднее. |
| Автор: Artem148 15.4.2011, 17:13 |
| to jhonyxakep. Прога называется "CloneMe" Тут большая часть Dll |
| Автор: Artem148 16.5.2011, 20:13 |
| to Snowy. 1) Message log в Spy++ вообще "молчит" - сообщений нет вообще, даже о движении мыши над формами! 2) Вместе с прогой(CloneMe.exe) запускается(CloneMeServ.exe) 3) Прога "узнаёт" о нажатии, даже когда закрыта(при запуске "вылазиют" сообщения: "Вы точно хотите архивировать ...", колличество сообщений пропорционально колличеству нажатий) P.S может в дровах поковырться? |
| Автор: Artem148 22.5.2011, 21:17 |
| Эй, есть кто живой!?. P.S: Ни уже ли я что-то не то сказал? |
| Автор: Snowy 23.5.2011, 11:10 |
| А что нужно? Ты просто что-то не так делаешь. Попробуй бросить на форму ApplicationEvents и записывать в мемо номера всех сообщений, раз со spy не разобрался. |
| Автор: Artem148 27.5.2011, 14:16 | ||||||||
1) а) Я разобрался со spy б) Сообщений нет только от стандартной проги(на пример от "Оперы" сообщений очень много(если не останавливать ловлю, то непрочитаешь - слишком быстро), от стандартной проги ни одного сообщения)
2) Всё может быть I) Жмём "Find window" II) "Прицельчиком" находим нужное окно III) Выбираем сообщения(радио кнопка) IV) Сидим, смотрим, видим фигу
3) Хороший вопро - надо подумать...
Я думаю это... |
| Автор: Artem148 27.5.2011, 15:24 |
| Скальпель, док... P.S 1) это сообщения с самой проги 2) повторюсь: жму кнопку бродкаст молчмт... |
| Автор: Artem148 27.5.2011, 16:00 |
| 000702BC P message:0xC1A4 [Registered:"Click_CloneMeFirstButton"] wParam:00000000 lParam:00000000 time:2:05:33.046 point:(550, 226) 000202B8 S message:0xC1A4 [Registered:"Click_CloneMeFirstButton"] wParam:00000000 lParam:00000000 А дальше? P.S: Та прога определяет также и на сколько раздроблен диск: может лучше в дровах поковыряться? |
| Автор: Snowy 27.5.2011, 16:23 |
| Дальше создай у формы обычную процедуру по поимке сообщения, только вместо WM_XXX пишешь $C1A4 Что касается непосредственно работы с диском - это уже другой вопрос. Задача этой темы - поймать событие нажатия кнопки. |
| Автор: Artem148 27.5.2011, 16:33 |
| Delphi: "illegal message method index" - надо пытаться через "RegisterWindowMessage" |
| Автор: Snowy 27.5.2011, 16:50 |
| Хм... Ну тогда лови все подряд через ApplicationEvents.OnMessage и отфильтровывай по номеру. |
| Автор: Artem148 27.5.2011, 17:02 |
| А если через "RegisterWindowMessage"? |
| Автор: Snowy 27.5.2011, 17:08 |
| Попробуй Для дельфи этот номер отрицательный. Но средствами API должно получиться. |
| Автор: Artem148 27.5.2011, 18:07 |
| Зарегестрировали, с помощью какой функции её отлавливать? |
| Автор: Snowy 27.5.2011, 18:57 |
| ApplicationEvents.OnMessage Лови то что вернула RegisterWindowMessage |
| Автор: Artem148 29.5.2011, 12:11 |
| to Snowy. Мне не даёт покоя эта надпись, что это вообще такое([Registered:"Click_CloneMeFirstButton"]), и с чем это едят? P.S Сообщени не "приходит"... |
| Автор: Artem148 29.5.2011, 13:10 |
| Ещё один маленький нюанс: стандартная прога использует свою службу (MeDM) P.S Остановили службу, запустили прогу - формы нет(признаков жизни тоже |
| Автор: Artem148 29.5.2011, 13:29 |
| MeDM - это, как выяснилось, Device Manager Service |
| Автор: Snowy 30.5.2011, 10:16 | ||
Значит эта служба разговаривает с устройствои и высылает сообщение Click_CloneMeFirstButton. |
| Автор: Artem148 31.5.2011, 10:33 |
| Дано: 1) MeDM.exe (\Windows\System32\MeDM.exe), он создаёт службу(MeDM), без которой прога запускается и "зависает" в процессах 2) CloneMeServ.exe - эта прога запускается, и при её завершении запрос при нажатии на кнопку не выдаётся 3) Сама прога - CloneMe.exe; У CloneMeServ.exe и MeDM.exe никаких сообщений нет! И последнее: Если прога запущена и отклучит службу и выгрузить MeDM, то сообщения приходят и вообще прога работает нормально. |
| Автор: Artem148 5.6.2011, 21:06 |
| Можно ли обратиться на примую к диску, к его свойствам? |
| Автор: Shyrik_UK 18.8.2011, 14:57 |
| Тема вроде умерла, но вдруг будет полезно грядущим поколениям.... У меня тож веник с супер-пупер кнопкой. Смотрел сообщения, пытался подгрузить dll (в дебилдере) - не получилось нахрапом. Однако, при внимательном рассмотрении того софта, что поставляется с вениким обнаружилось следующее: помимо кучки библиотек у меня два exe файла - один - тот, что стартует с системой и слушает нажатие, и второй - который занимается какраз "бэкапом". Решение простое - пишем свою мини-прогу, которая запускает внешне-настроенный BackUp-прогу. Кладём её в директорию с дефолтным софтом и переименовываем exe-шник на тот, который шёл с веником (тот второй ). Всё работает и радует |
| Автор: Artem148 19.8.2011, 08:53 | ||
Shyrik_UK,
Ага, красавчик (или красвица P.S: С чего ты решил(а), что я собираюсь использовать кнопку для Back-Up`а !? |
| Автор: robt 23.8.2011, 14:18 |
| а с чего вдруг все решили что от устройства подключенного по усб должно посылаца какое либо сообщение? |
| Автор: Artem148 24.8.2011, 09:00 |
| robt, Выкладывай свой вариант... Послушаем! |
| Автор: robt 24.8.2011, 10:58 |
| а что, тонкого намека мало? посмотрел на твою подпись... будь попроще и люди к тибе потянуца |
| Автор: Artem148 24.8.2011, 14:03 |
| robt, Куда уж проще ... А тонкие намёки не все понимают |
| Автор: robt 24.8.2011, 21:20 |
| покури тему про HID+USB=google.ru |
| Автор: Artem148 24.8.2011, 21:37 |
| Может стоит поковыряться в с службе Plug-And-Play? |
| Автор: robt 24.8.2011, 21:56 |
| зачем? |
| Автор: Artem148 24.8.2011, 22:07 | ||
Взято из описания службы |
| Автор: robt 25.8.2011, 09:48 |
| нуи? зачем? |