| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Отлавливание события открытия папки в Windows |
| Автор: KillerrrK 24.2.2010, 20:26 |
| Ребят помогите плиз!!! Как отловить событие открытия папки в Win? Или хотябы как оно называется и откуда вылазит? Искал по этой теме в нете но ничего не нашел полезного... Зарание спасиб... |
| Автор: diadiavova 24.2.2010, 20:55 |
| Думаю что никак. Если как-то и можно то через WinAPI, да и то сомневаюсь. Открытие папки - это по сути дела открытие окна проводника и ничего больше. |
| Автор: Pilger 24.2.2010, 21:15 |
| Я не знаю, есть ли средства, которые могут в этом помочь (на памяти только что то с отлавливанием открытия или изменения файлов всплывает откуда то), но со своими текущими относительно небольшими знаниями вижу только один вариант^^. Это просматривать все открытые окна, читать заголовок или что то внутри окна и тем самым обнаруживать открытое окно в проводнике, которое указывает на нужную папку. Ничего попроще предложить не могу^^. Это на случай, если других вариантов не найдется. |
| Автор: KillerrrK 25.2.2010, 14:46 | ||
diadiavova но ведь когда открывается окно проводника то должно и соответственное событие возникать! А значит его поймать можно. Или нет? |
| Автор: KillerrrK 25.2.2010, 15:15 |
| То есть из своей проги я не могу не чъи события обрабатавать? Только через WinApi? А WinAPI я так понимаю без ассемблера не взять... Или в Бэйсике есть для что нибудь для этого? Библиотеки там... |
| Автор: diadiavova 25.2.2010, 15:20 | ||
Это то что есть в бейсике http://msdn.microsoft.com/ru-ru/library/4zey12w5.aspx Или более общий вариант(для всех языков) http://msdn.microsoft.com/ru-ru/library/system.runtime.interopservices.dllimportattribute.aspx |
| Автор: KillerrrK 25.2.2010, 15:37 |
| Спасибо diadiavova! |
| Автор: Pilger 25.2.2010, 16:24 |
| У API есть функции по нахождению любых окон и дочерних окон (по названию и стилю окна). Вот ты можешь искать окно с нужным тебе текстом (например название папки), затем проверять ComboBox и читать в нем текст и если он равен пути определенному, убивать (к примеру =D ) это окно^^. Кстати, как я уже на форуме неоднократно писал, есть программки, где можно посмотреть любое окно виндоуса, отправлять в это окно любые сообщения, тестировать и делать с ним всё что душе угодно. Например InqSoft Window Scanner. Удобная программа. Там и можешь посмотреть из чего состоит проводник и как в нем дойти до ComboBox'а. |
| Автор: KillerrrK 25.2.2010, 16:50 |
| Спасибо Pilger. А можеш сказать как функция называется? |
| Автор: Pilger 25.2.2010, 16:55 |
| Я тут на форуме уже писал пару раз, щас найду... http://forum.vingrad.ru/forum/topic-219263/kw-listbox.html http://forum.vingrad.ru/forum/topic-222145/kw-%D1%83%D0%BF%D1%80%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BE%D0%BA%D0%BD%D0%B0%D0%BC%D0%B8.html вот пара тем... там видно примерно как можно. Еще надо иногда переходить не на дочернее окно, а на соседнее. Для этого тоже есть функции определенные. Переход prev и next. Находишь окно, потом по порядку находишь соседние и дочерние окна, пока не дойдешь до ComboBox'а. Потом его дочернее окно будет содержать как раз текст открытой директории. |
| Автор: KillerrrK 25.2.2010, 17:06 |
| Спасибо Pilger! |
| Автор: Pilger 25.2.2010, 17:16 | ||
Откопал свои старые проекты |
| Автор: KillerrrK 25.2.2010, 17:33 |
| Слушай Pilger, ты на одном из форумов писал коды: dim Window as integer = FindWindow(vbnullstring, "имя окна") 'Находим окно. Переменная получает цифры. Что это за цифры можешь обьяснить плиз? |
| Автор: KillerrrK 25.2.2010, 18:36 |
| Уже не надо. Тупой вопрос был... Разобрался... |