Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > 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 |
нуи? зачем? |