Windows API и SendMessage () - PullRequest
       2

Windows API и SendMessage ()

1 голос
/ 22 августа 2010
int x = 5;
int y = 10;

y = y << 16;
int coord = x | y;

NativeMethods.SendMessage(hwnd, WM_LBUTTONDOWN, new IntPtr(0), new IntPtr(coord));
NativeMethods.SendMessage(hwnd, WM_LBUTTONUP, new IntPtr(0), new IntPtr(coord));

Используя приведенный выше код (ref: MSDN), я могу выбрать строку в сетке данных внешнего приложения. Я хотел бы знать, как я могу отправить ctrl-a и ctrl-c в одно и то же представление данных.

Все еще пытаюсь понять, почему переменные x и y инициализированы в 5,10, и почему y смещено влево на 16, а затем | с х.

Ответы [ 3 ]

1 голос
/ 22 августа 2010

Возможно, вам действительно понадобится Подклассы Windows . Обратите внимание, что это не подкласс C ++.

Этот метод отправляет сообщения из определенной оконной процедуры (WndProc) в другой WndProc, достигая, таким образом, того, чего вы хотите.

После настройки он просто работает. MSDN очень легок в использовании этой информации, поэтому ссылка приведена выше в качестве учебного пособия.

Подробнее:

Управление подклассами - MSDN

Элементы управления ActiveX: создание подкласса элемента управления Windows

** Подклассы элементов управления Windows Forms Может быть наиболее уместным.

1 голос
/ 22 августа 2010

Что по этому поводу:

SendMessage( hwnd, WM_KEYDOWN, VK_CTRL, 0 );
SendMessage( hwnd, WM_KEYDOWN, 0x43, 0 );
// Ctrl and C keys are both pressed.
SendMessage( hwnd, WM_KEYUP, 0x43, 0 );
SendMessage( hwnd, WM_KEYUP, VK_CTRL, 0 );

0x43 - клавиша C (см. http://msdn.microsoft.com/en-us/library/dd375731(v=VS.85).aspx)


Редактировать: Если это не сработает, попробуйте отправить WM_COPY, что должно быть лучше.

SendMessage( hwnd, WM_COPY, 0, 0 );
0 голосов
/ 23 августа 2010

Дополнительные ссылки для "Windows Hooking".Это метод перехвата или перехвата сообщений и событий во внешних приложениях.

Перехват

EasyHook

MSDNКрючки Хороший обзор.

HTH

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...