| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Буфер обмена |
| Автор: Vikelf 9.5.2013, 20:28 |
| Доброго времени суток, уважаемые форумчане. У меня возникла следующая проблема: Код внутри кнопки: int a, b; a=1000; b=555; ... OpenClipboard; EmptyClipboard(); AnsiString s = a; Clipboard()->AsText = a; keybd_event(VK_CONTROL, 0, 0 ,0); keybd_event('V', 0, 0 ,0); keybd_event('V', 0, KEYEVENTF_KEYUP,0); keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP,0); EmptyClipboard(); CloseClipboard; ... OpenClipboard; EmptyClipboard(); AnsiString x = b; Clipboard()->AsText = b; keybd_event(VK_CONTROL, 0, 0 ,0); keybd_event('V', 0, 0 ,0); keybd_event('V', 0, KEYEVENTF_KEYUP,0); keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP,0); EmptyClipboard(); CloseClipboard; Программа должна заносить в буфер значения 2-х переменных поочередно, и поочередно вставлять их с помощью имитации комбинации клавиш CTRL+V, но почему то она вставляет оба раза второе значение (что интересно, именно не первое, что было бы логичнее, а второе), не знаю почему. Может кто подскажет. |
| Автор: volatile 10.5.2013, 00:34 |
Потому-что keybd_event - это асинхронная посылка комбинаций клавиш, когда она придет - никто не знает. Внутри своей программы keybd_event не нужно использовать. Да и вообще, keybd_event - это последнее дело. |
| Автор: Dem_max 10.5.2013, 17:51 |
| Use SendInput http://msdn.microsoft.com/en-us/library/windows/desktop/ms646310(v=vs.85).aspx |