![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| SyncMaster |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 13.7.2006 Репутация: нет Всего: нет |
Здравствуйте.
Прощу помощи у знающих людей. Вопрос - как в дельфи сделать что бы при наведение курсора мышки на файл, определялось расширения файла, и запускалась соответственно программа, которая определена мною? На пример курсор мыши находится над файлом readme.txt мое приложение определило, что расширение у файла .txt, после чего приложение (мое) открывает блакнот.. Буду признателен, если будет не большой примерчик. Искал и че то не нашел, если такая тема уже есть киньте ссылку. Заранее большое спасибо. Это сообщение отредактировал(а) SyncMaster - 23.2.2010, 06:32 |
|||
|
||||
| morpheyushka |
|
|||
![]() Зеленый человек ![]() ![]() Профиль Группа: Участник Сообщений: 563 Регистрация: 26.2.2008 Где: Киев Репутация: 2 Всего: 8 |
Для начала такой вопрос - где наводишь курсор на файл?
|
|||
|
||||
| SyncMaster |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 13.7.2006 Репутация: нет Всего: нет |
это может быть любая область ОС, например диск - c:\ у нас там есть файлы, папки и.т.д вот там наводим курсор на файл, и наше приложение определяет его расширение и.т.д...
|
|||
|
||||
| Mikel |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 882 Регистрация: 30.3.2002 Где: Саратов Репутация: нет Всего: 2 |
В таком случае тебе надо переписать explorer.exe
-------------------- ...so remember, it's better to burn out than to fade away |
|||
|
||||
| SyncMaster |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 13.7.2006 Репутация: нет Всего: нет |
Не понял, видь сама ос (виндовс) видь может определять тип файла, на пример когда наводим курсор мышки на файл, появляется подсказка. а разве таким же макаром нельзя определить расширение файла? |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
Если сделаешь свой файловый менеджер - то в нём, разумеется, сможешь и определения типа файла сделать. А прямо в Explorer'ре - сильно сомневаюсь.
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| SyncMaster |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 13.7.2006 Репутация: нет Всего: нет |
Можно сделать, на пример если выбрать файл или папку то моя программа перехватывает события и передает инфу моей программе, и программа выводит путь к папке и имя папки, если выбран файл то названия файла.
теперь надо разобратся какое событие отвечает за Hints в винде и перехватить его, класс нашел tooltips_class, и тогда можно будет получить все что появляется в подсказке при наведение курсора мышки на файл. И ничего не надо переписывать... |
|||
|
||||
| Rrader |
|
|||
|
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: 18 Всего: 191 |
В принципе нет ничего сложного, для этого придуман IAccessible. Ставишь хук на мышь, в нем отслеживаешь, в каком окне находится курсор - если это SysListView32, вызываешь GetAncestor и сверяешь класс с CabinetWClass. Дальше вызываешь AccessibleObjectFromPoint и проверяешь роль объекта (должна быть ROLE_SYSTEM_LISTITEM). Если все проходит успешно, у тебя на руках есть текст item'а, над которым сейчас курсор. Дальше можно раскрутить полный путь, определить расширение и т.д.
Да, лучше не сверять классы окна, потому что,в Windows 7, к примеру, SysListView32 уже не найти. Нужно искать по другим признакам - принадлежность к explorer.exe, стили окна, оконные свойства, запрос интерфейсов и т.д. Это сообщение отредактировал(а) Rrader - 25.2.2010, 04:40 |
|||
|
||||
| SyncMaster |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 13.7.2006 Репутация: нет Всего: нет |
Ага то что нужно, спасибо большое... Это сообщение отредактировал(а) SyncMaster - 24.2.2010, 07:09 |
|||
|
||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |