|
|
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
D2007 Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. здесь есть три темы на форуме, их прочел, не нашёл там ничего полезного как же всё-таки правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2016, 14:29 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
добавиил: Код: pascal 1. 2. 3. вываливается только " cannot open clipboard " ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2016, 14:41 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
X11, 1. может там данные нетекстовые? 2. другие программы нормально работают? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2016, 15:02 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
makhaon. может там данные нетекстовые? я же написал: if Clipboard.HasFormat(CF_TEXT) then ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2016, 15:14 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
makhaon2. другие программы нормально работают? какие другие? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2016, 15:14 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
возможно, я понял причину У МЕНЯ БЫЛО ТАК Код: pascal 1. 2. 3. 4. 5. 6. 7. я переделал Код: pascal 1. отправил пользователю у меня пока ошибок не наблюдалось отправил на тестирование пользователю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2016, 15:17 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
Проблема решилась не полностью в течение часа 3-5 раз появляется сообщение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2016, 09:49 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
X11, Может в системе стоят следилки за клипбоардом? Можно посмотреть GetClipboardViewer покажет ли что нить. Плюс, посмотреть что вернет GetOpenClipboardWindow после ошибки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2016, 10:08 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
Совет будет некрасивый, но практичный. В ответ на этот Exception взять маленькую паузу и повторить действие. OleGetClipboard у меня выдавал регулярно такое сообщение, будучи вызываемым очень часто (TAction.OnUpdate). Я проблему свою решил через IsClipboardFormatAvailable. Но так, как у тебя проблема дальше, уже в операции внесения данных то выход - взять паузу и повторить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2016, 12:11 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
а как сделать, чтобы окно с текстом " cannot open clipboard " не появлялось? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2016, 12:18 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
Дело в том, что появляется как раз не exception, а простое окно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2016, 12:18 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
Ну например отказаться от услуг Clipbrd модуля и вызвать все API вручную. Но честно говоря не нашёл я в этом модуле MessageBox. Всё там нормально (XE7) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2016, 12:22 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
Michael LongneckНо честно говоря не нашёл я в этом модуле MessageBox. Его TAplication должен выдавать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2016, 12:24 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
Ну так не без посредства же raise exception. Там есть подозрительный момент, Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. но тогда просто надо Application.OnException подцепить и там сделать свою обработку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2016, 12:28 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
X11, авторя же написал: if Clipboard.HasFormat(CF_TEXT) then между проверкой и вставкой проходит время. возможно, что формат меняется за эти доли секунды авторкакие другие? любые, которые с текстовым клипбордом работают ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2016, 13:22 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
makhaonмежду проверкой и вставкой проходит время. возможно, что формат меняется за эти доли секунды нет, это исключено я копирую в буфер обмена и программа выдаёт ошибку я сразу же вставляю, например, в блокнот, чтобы проверить, что скопировалось и вижу, что проблем нет - вставилось в блокнот именно то, что копировал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2016, 13:28 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
X11, HWND WINAPI GetOpenClipboardWindow(void); - посмотреть что за хендл она вернет (можно и до и после вызова) и по нему поискать кому принадлежит окно через Spy++ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2016, 14:08 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
Может, с юникодом какие грабли? Попробуй допилить эту функцию Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2016, 18:43 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
кто-то открыл буфер и не закрыл. ты лезешь за данными - получаешь отлуп Michael LongneckНо честно говоря не нашёл я в этом модуле MessageBoxхех, надо было искать raise EClipboardException.Create. этот же тип ошибок и ловить в Application.OnException, если надо их погасить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2016, 23:14 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
X11, +1 к _Vasilisk_, лочишь клипбоард и никуда он больше от тебя не денется, а если не лочится, то значит и не был твоим... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2016, 09:05 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_Может, с юникодом какие грабли? Программа, откуда копируют - моя и следит ща буфером тоже моя. обе на D2007 написаны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2016, 11:13 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
X11, была недавно такая же ситуация, что-то блокировало клипбоард, сделал свой клипборад Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. в результате поймал HWND (остальная информация не помогла), через Spy++ выяснилось, что это сама дельфи (Seattle), наверное какое-то плагин... дальше копать не стал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2016, 12:39 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
Zeliusчерез Spy++ выяснилось, что это сама дельфи (Seattle), наверное какое-то плагин... дальше копать не стал у пользователя нет дельфи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2016, 12:44 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
X11, это все на что ты обратил внимание? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2016, 12:52 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
Zelius, тебе в GetLockInfo надо бы пройтись по цепочке GetWindowThreadProcessId -> OpenProcess -> GetModuleFileNameEx, чтобы получить имя процесса, захватившего буфер ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2016, 13:05 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
ZeliusX11, это все на что ты обратил внимание? ну я код не изучал :) не хочу его использовать пока не хочу ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2016, 13:13 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
Zelius, у него D2007. Там нет хелперов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2016, 13:30 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
Gatorу него D2007. Там нет хелперов.В 2006 уже были ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2016, 13:32 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, точно. Есть. Затупил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2016, 13:33 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
авторну я код не изучал :) прелестно! я показал методику, как с большой вероятностью можно определить кем заблокирован клипбоард. хелперы я просто вырезал из своего кода, не писать же новый, тем более ТСу то ничего и не надо, кроме готового разжеванного ответа. ну может кто-то из гугла заглянет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2016, 13:56 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
Чтобы скопировать что-то своё в буфер, достаточно ли просто одной строки Код: pascal 1. ? Или нужна обёртка из: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. Вопрос в продолжение моей темы. Имею две программы. Одна что-то копирует в буфер, вторая мониторит буфер и ловит инфу. Дело в том, что в первой программе я делаю просто копирование в буфер одной строкой. Но когда в другой своей программе, я пытаюсь прочесть из буфера строку, то получаю ошибку: ERROR. WMDrawClipboard. ClipboardOwner=9511674. WindowThreadProcessId=11108. Cannot open clipboard: Отказано в доступе В Диспетчере задач посмотрел, что это за WindowThreadProcessId=11108, а это моя первая программа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2018, 15:14 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
и нужно ли делать такую обёртку, когда читаешь из буфера? или ждостаточной одной строки? Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2018, 15:22 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
X11или ждостаточной одной строки? Спорю, что проверить это было-бы быстрее ожидания ответа на форуме. На втором месте чтение справки: авторUse the AsText property to place text in and retrieve text from the clipboard. The clipboard must contain a string or an exception occurs. To determine if the clipboard contains a string, pass CF_TEXT to the HasFormat method. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2018, 15:28 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
13.11.2018 15:14, X11 пишет: > Чтобы скопировать что-то своё в буфер, достаточно ли просто одной строки > Clipboard.AsText := s; если тебе похеру "крякозябры", то да. а если НЕ похеру, то Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2018, 15:31 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
wadmanСпорю, что проверить это было-бы быстрее ожидания ответа на форуме. Параллельно проверяю. Эффект нулевой. Всё равно вторая программа выдаёт исключение при чтении буфера. wadmanНа втором месте чтение справки: Читал. Только не понял, нужно ли при записи в буфер самому указывать формат или это за меня сделает Дельфи. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2018, 15:39 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
Мимопроходящийесли тебе похеру "крякозябры", то да. ОК, т.е. получается, что в коде чтения из буфера проблема. Но если обратиться к справке справкаThe clipboard must contain a string or an exception occurs. то исключения быть не должно, т.к. в буфере 100% строка. Т.к. я отправляю в первой программе именно строку в буфер. Я уже 100500 проверок перепробовал в коде чтения из буфера. Задолбало это исключение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2018, 15:42 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
Локаль мне не нужна, т.к. я отправляю в буфер только цифры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2018, 15:43 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
X11Всё равно вторая программа выдаёт исключение при чтении буфера. Странно, но у меня asText работает в обоих направлениях. Но Мимопроходящий верно отметил, что с юникодом беда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2018, 15:44 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий> Чтобы скопировать что-то своё в буфер, достаточно ли просто одной строки > Clipboard.AsText := s; если тебе похеру "крякозябры", то да. Ты пишешь, что достаточно одной этой строки, но тут же предлагаешь код с обёрткой из open/close. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2018, 15:44 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
X11Я уже 100500 проверок перепробовал в коде чтения из буфера. Задолбало это исключение. Напиши свою обертку зарегистрировав свой формат клипборда как строку. Это исключит кучу ошибок. Например, таким образом сделано у фастрепорта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2018, 15:45 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
wadmanСтранно, но у меня asText работает в обоих направлениях. У меня тоже в обоих, но исключение почти всегда на читающей стороне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2018, 15:45 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
wadman, мне не нужен свой формат, т.к. пользователь копирует в буфер текст не только из первой моей программы, но так же текст и из Блокнота, из браузера, ещё откуда-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2018, 15:48 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
X11, придется разбираться тогда... Какое исключение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2018, 15:49 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
При чтении, я, конечно же проверяю if Clipboard.HasFormat(CF_TEXT) then ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2018, 15:54 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
wadmanКакое исключение? выше я написал: X11ERROR. WMDrawClipboard. ClipboardOwner=9511674. WindowThreadProcessId=11108. Cannot open clipboard: Отказано в доступе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2018, 15:54 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
Вот что я заметил, когда я отлаживаю код, то ошибки нет. Исключения нет. Может нужно перед проверкой сделать какую-то паузу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2018, 15:57 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
Сделал Код: pascal 1. 2. И ошибка исчезла. Но нигде в справке этого нет. Это Винда виновата? Антивирус? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2018, 15:59 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
Тоже про Sleep пишите http://www.sql.ru/forum/1047872/cannot-open-8203-clipboard-otkazano-v-dostupe ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2018, 16:01 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
X11Вот что я заметил, когда я отлаживаю код, то ошибки нет. Исключения нет. Операция с буфером затратная по времени. Если ты в одном месте сразу вставляешь и сразу достаешь, то стоит делать некую паузу. Например, вставь из блокнота, переключись на свое приложение и проверь. Это и есть типичный сценарий. Для взаимодействия на уровне одной программы без участия пользователя лучше задействовать иные механизмы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2018, 16:08 |
|
||
|
cannot open clipboard
|
|||
|---|---|---|---|
|
#18+
X11Имею две программы. Одна что-то копирует в буфер, вторая мониторит буфер и ловит инфу. Хм... Я-бы в таком случае мониторил не только буфер и отсутствие владельца буфера: https://docs.microsoft.com/en-us/windows/desktop/api/Winuser/nf-winuser-getclipboardowner Обработчики буфера, всякие мультибуферы и т.п. как-то работают без исключений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2018, 16:16 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2040131]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
209ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
102ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 594ms |

| 0 / 0 |
