powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Перехват события
16 сообщений из 16, страница 1 из 1
Перехват события
    #36606884
gugion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Можно ли перехватить событие, которое возникает при наведении курсора мыши на файл или папку?
Подскажите пожалуйста, кто сталкивался с подобной задачей, где копать?
...
Рейтинг: 0 / 0
Перехват события
    #36606916
Фотография Пилотажный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gugion,
во многих хелпах, туториалах разных языков есть примеры Drag&Drop - где как раз часто перетаскиваются папки и файлы после наведения на них
...
Рейтинг: 0 / 0
Перехват события
    #36607695
gugion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это не совсем то что нужно.
Задача состоит в том, чтобы при наведении курсором мыши на любую папку или файл, вызывалось свое приложение, с передачей в него пути к этому файлу или папке. А если еще проще, то показать свое описание файла, вместо стандартного виндового.
...
Рейтинг: 0 / 0
Перехват события
    #36607838
gugion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какими глобальными хуками это можно сделать, если есть таковые?
...
Рейтинг: 0 / 0
Перехват события
    #36608190
Хозяин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
трассировать системные сообщения пробовали уже??????

так попробуйте!
...
Рейтинг: 0 / 0
Перехват события
    #36611457
Фотография Пилотажный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gugionКакими глобальными хуками это можно сделать, если есть таковые?

можно смотреть функции в
shell32.dll (здесь по Проводнику), kernel32.dll, user32.dll,
например, GetFullPathName,
которые вызывать, перехватив сообщения о событиях в Windows API

Какие события? Какие сообщения по каким событиям?

В этом случае (как видится - не лучшим, но и не худшим вариантом) можно ловить события получения фокуса (в API есть). Определем какой элемент получил фокус (по вложенности, ...) - и если это нужный нам элемент, то вызываем соответствующую функцию, дающую нужные свойства этого элемента.

P.S. Про drag&drop писал, что lпо drag&drop примеров много, решаемых в два движения, - где обычно уповещаем Windows, что будем перехватывать события drag&drop и ловим то, что нужно, из того, что перетаскиет Windows. В разных IDE наверно всякое реализуют - и это намек - "поискать подарки под елкой" в IDE.

А вообще какой язык-то и IDE?
...
Рейтинг: 0 / 0
Перехват события
    #36611870
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gugion ,
в какой среде либо языке Вы это хотите реализовать? И это ключ к ответу. ;)
...
Рейтинг: 0 / 0
Перехват события
    #36612007
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
AIS gugion ,
в какой среде либо языке Вы это хотите реализовать? И это ключ к ответу. ;) в-смысле? WinAPI как-то связан с языком?
или вы про саму возможность хука?
...
Рейтинг: 0 / 0
Перехват события
    #36613155
gugion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Среда разработки: VS 2008 Beta 2
.Net фреймворк: v2.0.50727
Язык: С#
OC: Windows 7, Server 2003, Vista, XP

Спасибо всем, кто отозвался. Нашел я в общем, где копать...используя интерфейсы классов IPersistFile, IQueryInfo можно получить и полный путь к файлу и заменить своим текстом ToolTip. По сути пишем расширение под win explorer. В сети много примеров... но, многие из них не рабочие, особенно под .Net. Ниже пример кода замены ToolTip своим текстом... Но код не работает, может кто подскажет где я не прав?:)
P.S.: Функции регистрации в примере не привел, только рабочую часть. Библиотека компилится и регится без проблем (регил через regasm). Назначил свой тултип для типа файлов txt, прописав в реестре нужный ключ.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices; 

namespace ShellDll
{
    [ComImport()] 
    [Guid("00021500-0000-0000-C000-000000000046")] 
    [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] 
    public interface IQueryInfo 
    { 
        [PreserveSig()] 
        void GetInfoTip([In] IntPtr dwFlags, [Out,MarshalAs(UnmanagedType.LPWStr)] out string ppwszTip); 
        [PreserveSig()]
        void GetInfoFlags(ref IntPtr pdwFlags); 
    }
    [Guid("15ea8a78-1a0d-4b7a-bfe5-45304c1dad5f")]
    public class MyInfoTip: IQueryInfo
    {
        public void GetInfoTip(IntPtr dwFlags, out string ppwszTip) 
        {
            ppwszTip = ":))))";
        }
        public void GetInfoFlags(ref IntPtr pdwFlags)
        {
            pdwFlags = (IntPtr)Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(int)));
        }
        
        [ComRegisterFunctionAttribute()]
        static void RegisterServer(string Str1){
  
        }
        [ComUnregisterFunctionAttribute()]
        static void UnregisterServer(string Str1)
        {
        }

    }
}
...
Рейтинг: 0 / 0
Перехват события
    #36613185
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что-то похожее, с хуками
...
Рейтинг: 0 / 0
Перехват события
    #36613377
gugion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Был пример (IPersistFile,IQueryInfo) на делфе по тому же принципу, работал везде кроме windows 7 и Vista - не проверял. Почему не работает в .net - странно... толи я туплю то ли барабашка завелся:)
...
Рейтинг: 0 / 0
Перехват события
    #36613510
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gugion...
Дык твоя шняга будет работать только для стандартного explorer. А если пользователь взял какой-нибудь TotalCommander?
...
Рейтинг: 0 / 0
Перехват события
    #36613604
gugion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytongugion...
Дык твоя шняга будет работать только для стандартного explorer. А если пользователь взял какой-нибудь TotalCommander?

Дык мне больше кроме виндового explorera и не нужно:)
...
Рейтинг: 0 / 0
Перехват события
    #36614001
gugion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем нашел рабочий сабж на делфе:
http://sources.ru/delphi/delphi_windows_shell_extensions_infotip.shtml

Но под .net пока не работает... фиг знает почему...
...
Рейтинг: 0 / 0
Перехват события
    #36615273
Фотография Пилотажный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gugionБыл пример (IPersistFile,IQueryInfo) на делфе по тому же принципу, работал везде кроме windows 7 и Vista - не проверял. Почему не работает в .net - странно... толи я туплю то ли барабашка завелся:)

<- барабашка такой?
Похоже, что Microsoft отказывается перестает поддерживать COM (IQueryInfo ...)
в очередных Windows в пользу Net.
Вот и многий софт, который сделан не в MS Visual Studio, может не работать в Vista и 7. ???
А то, что на C#, по определению всё через Net.
...
Рейтинг: 0 / 0
Перехват события
    #36615291
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пилотажныйперестает поддерживать COM
Гониво.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Перехват события
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]