Заблокирован
|
|||||||||||
1 | |||||||||||
перехват сообщений в системе05.10.2010, 12:30. Показов 5446. Ответов 10
Здравствуйте форумчане! Столкнулся с проблеммой получения данных с буфера обмена. Но обо всём по порядку.
- Необходимо при нажатии CTRL+C, перехватывать событие в программе. Затем обращаться к буферу обмена и вытягивать инфу в формате текст. - вот что мне удалось сделать:
------------------ На данной строке IDataObject iData = Clipboard.GetDataObject(); выходит сообщение об ошибки "В экземпляре объекта не задана ссылка на объект." Точно уверен, что в буфере обмена содержится данные в формате текст. Странно выходит, если я делаю Clipboard.GetDataObject() на кнопке, то всё отображается верно(приведено ниже)! Но мне нужно, чтобы это действие выполнялось на сочетании клавиш CTRL+C.
0
|
05.10.2010, 12:30 | |
Ответы с готовыми решениями:
10
Перехват сообщений Перехват системных сообщений Перехват сетевого трафика в системе Глобальный перехват нажатий клавиш в системе |
1319 / 992 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
|
|||||||||||
05.10.2010, 13:04 | 2 | ||||||||||
но можно и так - через хук: см метод HookCallback
0
|
Заблокирован
|
|
05.10.2010, 13:13 [ТС] | 3 |
Mikant - большое спасибо за приведённый код, но хотелось бы узнать, что в моём коде не так? почему в строке Clipboard.GetDataObject() выходит ошибка, ведь буфер не пуст!!!
0
|
1319 / 992 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
|
||||||
05.10.2010, 15:10 | 4 | |||||
Добавлено через 1 минуту короче, вводи делай Invoke у контрола - проблемы должны исчезнуть
1
|
Заблокирован
|
|
05.10.2010, 15:31 [ТС] | 5 |
Извините меня, ну что-то последний код мне вообще не понятен( Я ещё значит ламер в этом!
0
|
Почетный модератор
|
||||||
05.10.2010, 16:05 | 6 | |||||
Вот ещё вариант перехвата CTRL+C:
0
|
Заблокирован
|
|
06.10.2010, 07:34 [ТС] | 7 |
SSTREGG - предоставленный вами код не работает.
Ошибка 1 Тип "ClipShow.frmMain" уже определяет член "SetClipboardViewer" с такими же типами параметров D:\Free program\2\WindowsFormsApplication1\WindowsFormsApplication1\Form1.Designer.cs 11 30 WindowsFormsApplication1
0
|
Почетный модератор
|
|||||||||||
06.10.2010, 20:13 | 8 | ||||||||||
Ну так ненужно тупо копировать, Вам нужно разместить в классе формы этот код:
1
|
31 / 31 / 5
Регистрация: 05.01.2011
Сообщений: 65
|
|||||||||||
05.01.2011, 19:05 | 9 | ||||||||||
Доброго времени суток! Простите за дубство, но сам не смог сделать то, что мне нужно и вот прошу помощи! В общем мне необходимо как-то вызвать нестатический метод из статического, но как бы я не пробовал, у меня ничего не выходит, ругается "...требуется ссылка на объект", и ссаыку эту я сформировать не смог! =(
Использую пример "HookCallback".
И пихаю в "public partial class Form1 : Form":
Думаю ответ на этот вопрос поможет не только мне, т.к. в инете нашел много похожих тем, но чет все не то! И еще, по поводу этого метода, как-то он странно работате (или я что-то упустил), но если в ХукКолбэк "Console.Beep(1000, 500);" или отображение мессага, то после 5-11 срабатываний он перестает действовать!
0
|
Почетный модератор
|
|
05.01.2011, 19:36 | 10 |
Поиск по форуму рулит.
Интересно как ты вызовешь из статического метода не статический, если не статический метод находится в классе, экземпляр которого может еще не существовать?
0
|
31 / 31 / 5
Регистрация: 05.01.2011
Сообщений: 65
|
|||||||||||
06.01.2011, 17:56 | 11 | ||||||||||
Я же сказал дубчик я в этом деле! =) Впринципе я был на 90% уверен что так оно и есть, но всетаки думал есть какая-нибудь лазейка! Спасибо за ответ!
Смотрел я уже этот пример, просто этот симпатичнее выглядит! =) Добавлено через 17 часов 23 минуты Сделал на основе примера отсюда. В Hook.cs:
0
|
06.01.2011, 17:56 | |
06.01.2011, 17:56 | |
Помогаю со студенческими работами здесь
11
Глобальный перехват сочетания клавиш в системе Перехват сообщений от Алисы Перехват сообщений с консоли Перехват сообщений из консоли Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |