ClipCopy (Clipboard Copy) — Копирование через буфер обмена
- Andrey Budko
- Posts: 1203
- Joined: Fri 01 Apr, 2005 14:03
- Contact:
ClipCopy (Clipboard Copy) — Копирование через буфер обмена
Last edited by John Doe on Sun 26 Mar, 2023 23:02, edited 1 time in total.
ClipCopy (Clipboard Copy) — Копирование через буфер обмена
Latest post of the previous page:
Подтверждаю. Очень грустно. Это был один из моих самых важных плагинов. Только из-за него одного придётся откатываться на Far 3.0.5462.
А его можно посадить на макрос как-то по сочетанию клавиш? Причём так, чтобы работало в любой раскладке?
- HaRT
- Moderator
- Posts: 10436
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 190 times
- Been thanked: 324 times
ClipCopy (Clipboard Copy) — Копирование через буфер обмена
Фар есть инструмент, а не нянька. © 2009 DrKnS
ClipCopy (Clipboard Copy) — Копирование через буфер обмена
Плагин вызвать макросом можно многими способами... И, наверняка, ваш вопрос решится, - только опишите
задачу КОНКРЕТНО по пунктам:
1 нажал
2 должно произойти
3 результат
задачу КОНКРЕТНО по пунктам:
1 нажал
2 должно произойти
3 результат
SimSU ··· ·· -- ··· ··-
-
- Posts: 315
- Joined: Mon 12 Jun, 2006 14:58
- Has thanked: 1 time
- Been thanked: 17 times
- Contact:
ClipCopy (Clipboard Copy) — Копирование через буфер обмена
Вот кстати изменение, которое поломало плагин. Похоже что как раз в версии 5463 уже не будет работать:
https://github.com/FarGroup/FarManager/ ... 09efdb7927
https://github.com/FarGroup/FarManager/ ... 09efdb7927
Тут можно скачать саму 5463 - https://github.com/FarGroup/FarManager/ ... .5463.1146Init COM as multithreaded, ......
ClipCopy (Clipboard Copy) — Копирование через буфер обмена
Сорсы плагина вроде бы есть.
Кто мешает поправить там безусловный вызов OleUninitialize() (в 2-х местах) на условный:
auto need_uninit = SUCCEEDED(OleInitialize(NULL)); ... if (need_uninit) OleUninitialize();
Кто мешает поправить там безусловный вызов OleUninitialize() (в 2-х местах) на условный:
auto need_uninit = SUCCEEDED(OleInitialize(NULL)); ... if (need_uninit) OleUninitialize();
ClipCopy (Clipboard Copy) — Копирование через буфер обмена
Собрал и пересобрал и ещё раз.
- Attachments
-
- src_changes_v302.7z
- (7.04 KiB) Downloaded 59 times
-
- ClipCopy_v302.7z
- (14.05 KiB) Downloaded 70 times
Last edited by 2useven10 on Sat 20 Mar, 2021 17:32, edited 2 times in total.
-
- Posts: 315
- Joined: Mon 12 Jun, 2006 14:58
- Has thanked: 1 time
- Been thanked: 17 times
- Contact:
ClipCopy (Clipboard Copy) — Копирование через буфер обмена
Копировать все так же не работает.
Code: Select all
Не могу положить данные в буфер: 0x800401f0
-
- Posts: 315
- Joined: Mon 12 Jun, 2006 14:58
- Has thanked: 1 time
- Been thanked: 17 times
- Contact:
ClipCopy (Clipboard Copy) — Копирование через буфер обмена
Потому что юзается
Надо использовать
OleInitialize
, вот ее описание:А в фаре стало MTA.Initializes the COM library on the current apartment, identifies the concurrency model as single-thread apartment (STA)
Надо использовать
CoInitializeEx
- https://docs.microsoft.com/en-us/window ... itializeex
Last edited by Pasha_ZZZ on Sat 20 Mar, 2021 15:32, edited 1 time in total.
ClipCopy (Clipboard Copy) — Копирование через буфер обмена
Боюсь плагину нужно именно OleInitialize(), но он обламывается, т.к. уже выполнен фаром CoInitializeEx(MULTITHREADED).
Можно попробовать в этом случае CoUninitialize(), потом снова OleInitialize(), если очень хочется.
Можно попробовать в этом случае CoUninitialize(), потом снова OleInitialize(), если очень хочется.
Last edited by 2useven10 on Sat 20 Mar, 2021 16:34, edited 1 time in total.
-
- Posts: 315
- Joined: Mon 12 Jun, 2006 14:58
- Has thanked: 1 time
- Been thanked: 17 times
- Contact:
ClipCopy (Clipboard Copy) — Копирование через буфер обмена
Это сильно вряд ли. С чему бы ему именно STA потребовалось.
Ага, чтобы все остальное вместе с самим фаром отвалилось вместо одного плагина

ClipCopy (Clipboard Copy) — Копирование через буфер обмена
STA может и не нужен, но OleInitialize() это не только CoInitialize().
Фар и все остальные не так давно жили с STA, к тому же можно и вернуть MTA по завершении работы.
ClipCopy (Clipboard Copy) — Копирование через буфер обмена
Плагин использует OleSetClipboard(), может ещё что-то. Если их заменить, то переинициализацию можно убрать.
Last edited by 2useven10 on Sat 20 Mar, 2021 17:14, edited 1 time in total.
-
- Posts: 315
- Joined: Mon 12 Jun, 2006 14:58
- Has thanked: 1 time
- Been thanked: 17 times
- Contact: