Проверка буфера обмена

Программирование на Visual Basic for Applications
Михаил Юрьевич
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 15.06.2004 (Вт) 8:43
Откуда: Архангельск

Проверка буфера обмена

Сообщение Михаил Юрьевич » 15.06.2004 (Вт) 9:19

Подскажите как в форме Access'а заставить при изменении содержимого буфера обмена проверять его параметры и если это картинка то сохранять в файл. Я понял как проверять буфер обмена с использованием функции API - SetClipboardViewer. Однако есть большое затруднение - окно должно обрабатывать сообщения Windows, не указанные во вкладке "События", такие как WM_CHANGECBCHAIN и WM_DRAWCLIPBOARD. Подскажите пожалуйста как их можно обработать в VBA.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 15.06.2004 (Вт) 10:14

В общем случае никак, ибо addressof введён не помню в какой версии VBA. Можно, правда, заиметь стороннюю библиотеку где-нибудь.
Но если офис>=2000, то должен работать. Качни Сабклассер из Проектов, может и покатит.
Хотя разве есть hwnd у MSForms? :roll:
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Михаил Юрьевич
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 15.06.2004 (Вт) 8:43
Откуда: Архангельск

Сообщение Михаил Юрьевич » 16.06.2004 (Ср) 17:34

У меня есть две идеи как это сделать - с помощью хуков и в другом потоке. Я с такими функциями не работал - может кто подскажет как их использовать?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 17.06.2004 (Чт) 9:57

А я вижу только один - сабклассинг.
Если есть там где-то hwnd - хорошо.
Если нет - в рантайме делаем createwindowex(0,"STATIC", все нули) и делаем сабклассинг оного.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 113

    TopList