К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Работа с буфером обмена

Гость
0 - 16.10.2012 - 14:16
Нужно сделать кнопку, по которой нужно получить значение текущего элемента (неважно откуда - из ТЧ, из табдока или формы), и далее делать с этим значением всякие действия.
Решил пойти путем использования буфера обмена. Сделал кнопку на общей панели, назначил ей обработку:

&НаКлиенте
Процедура ПриОткрытии(Отказ)
Отказ=Истина;
// передаем Ctrl-C
wsh=Новый COMОбъект("WScript.Shell");
wsh.SendKeys("^c");
// пытаемся получить содержимое буфера
h = Новый COMОбъект("htmlfile");
СодержимоеБуфера = h.ParentWindow .ClipboardData.Getdata("Text");
Сообщить(СодержимоеБуфера);
КонецПроцедуры

Проблема в том, что "^c" срабатывает только после окончания работы процедуры, и правильное содержимое буфера я получаю только при повторном вызове, что не есть хорошо. Есть ли у уважаемых форумчан мысли, как бы это обойти?



1 - 16.10.2012 - 14:21
В униврсальной обработке обмена в формате XML, в форме настройки отладки есть кнопка "скопировать в буфер обмена". Можно там поглядеть.
Гость
2 - 16.10.2012 - 14:48
dynawrap.dll в помощь
Гость
3 - 16.10.2012 - 15:46
Весь кайф ^c в том, что он тупо копирует в буфер текущий элемент. Если пользоваться методом, используемым в "обмене XML", то надо сначала каким-то хитрым образом получить значение этого текущего элемента. А поскольку текущим элементом может быть что угодно, я, честно говоря, в затруднении.
Гость
4 - 17.10.2012 - 03:36
может все-таки не копировать "что угодно"? наверное у данной задачи есть какой то здравый смысл?
Гость
5 - 17.10.2012 - 13:45
ok, тогда как можно выяснить какое окно 1С активно, и какой элемент в этом окне активен?
Гость
6 - 19.10.2012 - 09:21
всё, не актуально, сам всё сделал через фоновые задания


К списку вопросов






Copyright ©, Все права защищены