Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отлавливание события открытия папки в Windows, Как отловить событие открытия папки? 
V
    Опции темы
KillerrrK
Дата 24.2.2010, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 24.2.2010

Репутация: нет
Всего: нет



Ребят помогите плиз!!! Как отловить событие открытия папки в Win? Или хотябы как оно называется и откуда вылазит? Искал по этой теме в нете но ничего не нашел полезного... Зарание спасиб...
PM MAIL   Вверх
diadiavova
Дата 24.2.2010, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



Думаю что никак. Если как-то и можно то через WinAPI, да и то сомневаюсь. Открытие папки - это по сути дела открытие окна проводника и ничего больше.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Pilger
Дата 24.2.2010, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 257
Регистрация: 10.5.2008
Где: Германия

Репутация: нет
Всего: нет



Я не знаю, есть ли средства, которые могут в этом помочь (на памяти только что то с отлавливанием открытия или изменения файлов всплывает откуда то), но со своими текущими относительно небольшими знаниями вижу только один вариант^^. Это просматривать все открытые окна, читать заголовок или что то внутри окна и тем самым обнаруживать открытое окно в проводнике, которое указывает на нужную папку. Ничего попроще предложить не могу^^. Это на случай, если других вариантов не найдется.


--------------------
Ein Leben nach der Schleife existiert, nur wenn die Schleife terminiert.
PM MAIL ICQ   Вверх
KillerrrK
Дата 25.2.2010, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 24.2.2010

Репутация: нет
Всего: нет



Цитата

Думаю что никак. Если как-то и можно то через WinAPI, да и то сомневаюсь. Открытие папки - это по сути дела открытие окна проводника и ничего больше.


diadiavova но ведь когда открывается окно проводника то должно и соответственное событие возникать! А значит его поймать можно. Или нет?
PM MAIL   Вверх
diadiavova
Дата 25.2.2010, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



Цитата(KillerrrK @  25.2.2010,  14:46 Найти цитируемый пост)
diadiavova но ведь когда открывается окно проводника то должно и соответственное событие возникать

Окно проводника - это событие проводника, а не твоей программы. На счёт возможности сделать это через винапи я просто не в курсе, но у меня есть сомнения по поводу возможности доступа к событиям проводника, хотя ничего не утверждаю.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
KillerrrK
Дата 25.2.2010, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 24.2.2010

Репутация: нет
Всего: нет



То есть из своей проги я не могу не чъи события обрабатавать? Только через WinApi? А WinAPI я так понимаю без ассемблера не взять... Или в Бэйсике есть для что нибудь для этого? Библиотеки там...
PM MAIL   Вверх
diadiavova
Дата 25.2.2010, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



Цитата(KillerrrK @  25.2.2010,  15:15 Найти цитируемый пост)
А WinAPI я так понимаю без ассемблера не взять... Или в Бэйсике есть для что нибудь для этого?

Это то что есть в бейсике
http://msdn.microsoft.com/ru-ru/library/4zey12w5.aspx
Или более общий вариант(для всех языков)
http://msdn.microsoft.com/ru-ru/library/sy...tattribute.aspx



--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
KillerrrK
Дата 25.2.2010, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 24.2.2010

Репутация: нет
Всего: нет



Спасибо diadiavovasmile  Гляну!

PM MAIL   Вверх
Pilger
Дата 25.2.2010, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 257
Регистрация: 10.5.2008
Где: Германия

Репутация: нет
Всего: нет



У API есть функции по нахождению любых окон и дочерних окон (по названию и стилю окна). Вот ты можешь искать окно с нужным тебе текстом (например название папки), затем проверять ComboBox и читать в нем текст и если он равен пути определенному, убивать (к примеру =D ) это окно^^. Кстати, как я уже на форуме неоднократно писал, есть программки, где можно посмотреть любое окно виндоуса, отправлять в это окно любые сообщения, тестировать и делать с ним всё что душе угодно. Например InqSoft Window Scanner. Удобная программа. Там и можешь посмотреть из чего состоит проводник и как в нем дойти до ComboBox'а.

Это сообщение отредактировал(а) Pilger - 25.2.2010, 16:54


--------------------
Ein Leben nach der Schleife existiert, nur wenn die Schleife terminiert.
PM MAIL ICQ   Вверх
KillerrrK
Дата 25.2.2010, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 24.2.2010

Репутация: нет
Всего: нет



Спасибо Pilger. А можеш сказать как функция называется?
PM MAIL   Вверх
Pilger
Дата 25.2.2010, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 257
Регистрация: 10.5.2008
Где: Германия

Репутация: нет
Всего: нет



Я тут на форуме уже писал пару раз, щас найду...

http://forum.vingrad.ru/forum/topic-219263/kw-listbox.html
http://forum.vingrad.ru/forum/topic-222145...0%BC%D0%B8.html

вот пара тем... там видно примерно как можно. Еще надо иногда переходить не на дочернее окно, а на соседнее. Для этого тоже есть функции определенные. Переход prev и next. Находишь окно, потом по порядку находишь соседние и дочерние окна, пока не дойдешь до ComboBox'а. Потом его дочернее окно будет содержать как раз текст открытой директории.


Это сообщение отредактировал(а) Pilger - 25.2.2010, 17:20


--------------------
Ein Leben nach der Schleife existiert, nur wenn die Schleife terminiert.
PM MAIL ICQ   Вверх
KillerrrK
Дата 25.2.2010, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 24.2.2010

Репутация: нет
Всего: нет



Спасибо Pilger!  smile
PM MAIL   Вверх
Pilger
Дата 25.2.2010, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 257
Регистрация: 10.5.2008
Где: Германия

Репутация: нет
Всего: нет



Код

    Private Declare Function GetNextWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As Integer, ByVal wFlag As Integer) As Integer


Откопал свои старые проекты  smile . Чё творил...

Это сообщение отредактировал(а) Pilger - 25.2.2010, 17:17


--------------------
Ein Leben nach der Schleife existiert, nur wenn die Schleife terminiert.
PM MAIL ICQ   Вверх
KillerrrK
Дата 25.2.2010, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 24.2.2010

Репутация: нет
Всего: нет



Слушай Pilger, ты на одном из форумов писал коды:

dim Window as integer = FindWindow(vbnullstring, "имя окна") 'Находим окно.

Переменная получает цифры. Что это за цифры можешь обьяснить плиз?

PM MAIL   Вверх
KillerrrK
Дата 25.2.2010, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 24.2.2010

Репутация: нет
Всего: нет



Уже не надо. Тупой вопрос был... Разобрался...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0867 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.