2017-01-20 3 views
-3

Как я могу получить сообщение, когда пользователь вставить что-нибудь подобное TXT ... на рабочем столе или в другом месте, а не только в моей DELPHI применения. Мне нужно вставить сообщение, когда он делает из всплывающего меню и нажимает Ctrl + V. Что-то вроде кода ниже:Получить сообщение, когда время паста с помощью Дельфи

if (Msg.Message = WM_PASTE) Then 
ShowMessage('Paste'); 

Представьте себе приложение, которое имеет две кнопки, которые одна из темы [button1] делают пасту из буфера обмена и еще один [button2] делает вставить текст из Memo1 [Я добавил некоторый текст эту записку] повсюду. проблема заключается в том, что я делаю что-то копировать в буфер обмена, а затем вставляю его, затем, если я вставлю, нажав кнопку2, пропустите мое последнее значение буфера обмена. Я добавил еще одно memo2 [Это памятка - это мой альтернативный буфер обмена], и когда вы делаете вставку, нажимая на первую кнопку, я также вставляю ее в memo2. На следующем шаге я нажимаю на кнопку2, это должно вставить значение memo1 во все, что я хочу, теперь я также могу скопировать значение memo2 в буфер обмена, потому что я собираюсь использовать его снова. Я могу сделать это, если я хочу сделать пасту, как button2, но если я нахожу пасту внутри рабочего стола, нужно определить время вставки. Важная вещь, которую я должен использовать скопировать, вместо отправки нажатия клавиши.

+2

Это довольно трудно сделать. Приложения могут выбирать для вставки, но, тем не менее, они хотят. Иногда будут сообщения 'WM_PASTE', но не раз. Иногда приложение обрабатывает сочетания клавиш напрямую. Иногда его вызывают из меню, от кнопок, от лент. Что лежит за этой просьбой. почему ты хочешь сделать это? Возможно, есть лучший способ. –

+0

Спасибо. Это очень сложно объяснить, но все, что мне нужно сделать, это только обнаружение сочетаний клавиш непосредственно и из меню. –

+0

Зачем вы хотите это сделать? Потому что ваши текущие идеи вряд ли сработают. –

ответ