Необходимо сделать так, что бы пользователь нажав назначенную в мой программе "горячую клавишу" и удерживая ее получил выделенный текст из буфера. Т.е. пользователь нажимает скажем Shift и держит, программа копирует выделенный текст и выдает его на экран.

Сейчас для копирования выделенного текста в буфер делается так:

procedure ClearShiftState;

begin

if GetKeyState(VK_SHIFT)

keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);

if GetKeyState(VK_CONTROL)

keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);

if GetKeyState(VK_MENU)

keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0);

end;

procedure CopySelectionFromActiveWindow;

var

Wnd: THandle;

begin

Wnd := GetFocusedControl;

if Wnd

begin

ClearShiftState;

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);

end;

end;

Т.е. фактически эмулируется нажатие Ctrl+C+C. При этом, если "горячая клавиша" Ctrl то все работает прекрасно, если же сменить "горячую клавишу", например на Shift то не работает. Возможно причина в том, что в момент эмуляции нажатия Ctrl+C+C, Shift уже нажат. Необходимо как-то это обойти. При этом необходимо учитывать, что нужно уметь получать слово из любого контрола где в принципе возможно выделение текста, будь то Word, Excel, FireFox, Opera или The Bat.

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

18 лет назад
leonidus
Леонид 
43 года
19 лет в сервисе
Был
5 лет назад

Выбранный исполнитель

Bandito
39 лет
19 лет в сервисе
Был
15 лет назад
18 лет назад
$20
1 день
Юрий сработал очень грамотно и оперативно, в сроки уложился четко. Спасибо.
Задача была поставлена четко, материалы по проекту высланы вовремя. Во время работы возникшие вопросы были решены оперативно. Рекомендую.

Заявки фрилансеров

Bandito
39 лет
19 лет в сервисе
Был
15 лет назад
18 лет назад
  • Похожие заказы

  • $1000

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

    Прикладное ПО1 исполнитель
    Закрыт
    17 лет назад
  • Суть сервиса - надстройка над системой ICQ состоящая из Серверной_части являющейся посредником между Клиентской_частью и сервером ICQ. Требуется разработать: 1. Серверную_часть 2. Клиентскую_часть 3. Протокол ...

    Закрыт
    18 лет назад
  • $250

    Требуется перевети библиотеку для сжатия данных (алгоритм PPM) с C++ на C#. Объем библиотки - около 1000 строк. Для подтверждения работоспособности переведенной библиотеки надо сделать тесты: - декомпресиия 10мб файла, созданного с помощью ...

    Закрыт
    18 лет назад
  • $300

    есть несколько xls-файлов с массивами, надо создать программу, которая по запросам и определённому алгоритму создаёт отчёты и выводит области массивов в виде графиков. Предпочтение отдаётся программистам из Москвы ввиду чрезвычайно малого времени для ...

    Прикладное ПО1 исполнитель
    Закрыт
    18 лет назад
  • $250

    исходный код тут http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=61946&lngWId=1 добавить features socks 4/5 ftp smtp support

    Закрыт
    18 лет назад