Page 7 of 9
ClipCopy (Clipboard Copy) — Копирование через буфер обмена
Posted: Tue 29 Sep, 2009 12:17
by Andrey Budko
ClipCopy (Clipboard Copy) — Копирование через буфер обмена
Posted: Tue 10 Mar, 2020 20:11
by Jury
Latest post of the previous page:
Sim wrote: ↑Mon 25 Nov, 2019 20:28
Начиная с версии Far 3.0.5464 x64 плагин перестал работать.
Подтверждаю. Очень грустно. Это был один из моих самых важных плагинов. Только из-за него одного придётся откатываться на Far 3.0.5462.
SUSim wrote: ↑Sun 02 Feb, 2020 10:37
А чем не подходит Emenu из корбки.
А его можно посадить на макрос как-то по сочетанию клавиш? Причём так, чтобы работало в любой раскладке?
ClipCopy (Clipboard Copy) — Копирование через буфер обмена
Posted: Tue 10 Mar, 2020 20:13
by HaRT
! | Message from: HaRT |
Jury wrote: ↑Tue 10 Mar, 2020 20:11
А его можно посадить на макрос как-то по сочетанию клавиш? Причём так, чтобы работало в любой раскладке?
Это следует обсуждать не тут, а в теме плагина EMenu. |
ClipCopy (Clipboard Copy) — Копирование через буфер обмена
Posted: Sun 23 Aug, 2020 14:24
by SUSim
Плагин вызвать макросом можно многими способами... И, наверняка, ваш вопрос решится, - только опишите
задачу КОНКРЕТНО по пунктам:
1 нажал
2 должно произойти
3 результат
ClipCopy (Clipboard Copy) — Копирование через буфер обмена
Posted: Sat 20 Mar, 2021 05:54
by Pasha_ZZZ
Вот кстати изменение, которое поломало плагин. Похоже что как раз в версии 5463 уже не будет работать:
https://github.com/FarGroup/FarManager/ ... 09efdb7927 Init COM as multithreaded, ......
Тут можно скачать саму 5463 -
https://github.com/FarGroup/FarManager/ ... .5463.1146
ClipCopy (Clipboard Copy) — Копирование через буфер обмена
Posted: Sat 20 Mar, 2021 08:03
by 2useven10
Сорсы плагина вроде бы есть.
Кто мешает поправить там безусловный вызов OleUninitialize() (в 2-х местах) на условный:
auto need_uninit = SUCCEEDED(OleInitialize(NULL)); ... if (need_uninit) OleUninitialize();
ClipCopy (Clipboard Copy) — Копирование через буфер обмена
Posted: Sat 20 Mar, 2021 11:45
by Pasha_ZZZ
Ну потом же еще собирать надо...
ClipCopy (Clipboard Copy) — Копирование через буфер обмена
Posted: Sat 20 Mar, 2021 14:54
by 2useven10
Собрал и пересобрал и ещё раз.
ClipCopy (Clipboard Copy) — Копирование через буфер обмена
Posted: Sat 20 Mar, 2021 15:25
by Pasha_ZZZ
Копировать все так же не работает.
Code: Select all
Не могу положить данные в буфер: 0x800401f0
ClipCopy (Clipboard Copy) — Копирование через буфер обмена
Posted: Sat 20 Mar, 2021 15:30
by Pasha_ZZZ
Потому что юзается
OleInitialize
, вот ее описание:
Initializes the COM library on the current apartment, identifies the concurrency model as single-thread apartment (STA)
А в фаре стало MTA.
Надо использовать
CoInitializeEx
-
https://docs.microsoft.com/en-us/window ... itializeex
ClipCopy (Clipboard Copy) — Копирование через буфер обмена
Posted: Sat 20 Mar, 2021 16:23
by 2useven10
Боюсь плагину нужно именно OleInitialize(), но он обламывается, т.к. уже выполнен фаром CoInitializeEx(MULTITHREADED).
Можно попробовать в этом случае CoUninitialize(), потом снова OleInitialize(), если очень хочется.
ClipCopy (Clipboard Copy) — Копирование через буфер обмена
Posted: Sat 20 Mar, 2021 16:34
by Pasha_ZZZ
2useven10 wrote: ↑Sat 20 Mar, 2021 16:23Боюсь плагину нужно именно OleInitialize()
Это сильно вряд ли. С чему бы ему именно STA потребовалось.
2useven10 wrote: ↑Sat 20 Mar, 2021 16:23Можно попробовать в этом случае CoUninitialize(), потом снова OleInitialize()
Ага, чтобы все остальное вместе с самим фаром отвалилось вместо одного плагина
ClipCopy (Clipboard Copy) — Копирование через буфер обмена
Posted: Sat 20 Mar, 2021 16:38
by 2useven10
Pasha_ZZZ wrote: ↑Sat 20 Mar, 2021 16:34
Это сильно вряд ли. С чему бы ему именно STA потребовалось.
STA может и не нужен, но OleInitialize() это не только CoInitialize().
Pasha_ZZZ wrote: ↑Sat 20 Mar, 2021 16:34
Ага, чтобы все остальное вместе с самим фаром отвалилось вместо одного плагина
Фар и все остальные не так давно жили с STA, к тому же можно и вернуть MTA по завершении работы.
ClipCopy (Clipboard Copy) — Копирование через буфер обмена
Posted: Sat 20 Mar, 2021 16:41
by 2useven10
Обновил файлы во вложениях. Теперь версия с переинициализацией (до и после).
ClipCopy (Clipboard Copy) — Копирование через буфер обмена
Posted: Sat 20 Mar, 2021 16:54
by 2useven10
2useven10 wrote: ↑Sat 20 Mar, 2021 16:23
Боюсь плагину нужно именно OleInitialize()
Плагин использует OleSetClipboard(), может ещё что-то. Если их заменить, то переинициализацию можно убрать.
ClipCopy (Clipboard Copy) — Копирование через буфер обмена
Posted: Sat 20 Mar, 2021 17:10
by Pasha_ZZZ
2useven10 wrote: ↑Sat 20 Mar, 2021 16:54Плагин использует OleSetClipboard(), может ещё что-то.
Set/Get/Flush.
ClipCopy (Clipboard Copy) — Копирование через буфер обмена
Posted: Sat 20 Mar, 2021 17:32
by 2useven10
Обновил ещё раз - баг.