Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» [win32api] Нажатие клавиш

Автор: lazutov
Дата сообщения: 20.04.2008 13:26

Код:
H:=GetForegroundWindow;
// SendMessage(H, WM_COPY, 0, 0);

{
keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event(ord('C'), 0, 0, 0);
keybd_event(ord('C'), 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
}
SendMessage(H,WM_KEYDOWN,VK_CONTROL,0);
SendMessage(H,WM_KEYDOWN,ord('c'),0);
SendMessage(H,WM_KEYUP,ord('c'),0);
SendMessage(H,WM_KEYUP,VK_CONTROL,0);

if Clipboard.HasFormat(CF_TEXT) then ShowMessage(Clipboard.AsText) else ShowMessage('В буфере обмена не текст!');
Автор: Abs62
Дата сообщения: 20.04.2008 15:53
lazutov
WM_COPY - думаю, не то.

Цитата:
WM_COPY
This message is sent by an application to an edit control or combo box to copy the current selection to the clipboard in CF_UNICODETEXT format.

keybd_event:

Цитата:
Windows NT/2000/XP/Vista:This function has been superseded. Use SendInput instead.

А если так?

Код: PostMessage(H,WM_KEYDOWN,VK_CONTROL,1);
PostMessage(H,WM_KEYDOWN,VK_C,1);
PostMessage(H,WM_KEYUP,VK_C,0xC001);
PostMessage(H,WM_KEYUP,VK_CONTROL,0xC001);
Автор: lazutov
Дата сообщения: 20.04.2008 18:49
поппробывал предложенное... нет, не работает(или руки...)
cами сорцы lazutov.ru/tmp/iw.rar
Автор: ShIvADeSt
Дата сообщения: 21.04.2008 01:17
Sleep(300) примерно добавь перед посылкой сообщений. Сам натыкался на эти грабли.
а вообще я через это посылал

Цитата:
keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event(ord('C'), 0, 0, 0);
keybd_event(ord('C'), 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);

и все отлично работало.

Страницы: 1

Предыдущая тема: Как проверить что пользователь ввел целое число


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.