Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2019, 18:34   #1
falsebegin
Форумчанин
 
Регистрация: 23.11.2016
Сообщений: 100
По умолчанию как отменить копирование файлов и папок через буфер обмена

драсти кто знает как отменить копирование файлов и папок через буфер обмена этот код отменяет если скопирован любой текст
Код:
if Clipboard.AsText='' then BitBtn1.Enabled := False else BitBtn1.Enabled := True;

Код:
Clipboard.Clear;
а как сделать так чтобы отменить копирование файла и папки? чтобы убрать из меню ставить и ставить ярлык

Последний раз редактировалось falsebegin; 12.03.2019 в 19:56.
falsebegin вне форума Ответить с цитированием
Старый 13.03.2019, 04:33   #2
falsebegin
Форумчанин
 
Регистрация: 23.11.2016
Сообщений: 100
По умолчанию

неужто никто не знает
falsebegin вне форума Ответить с цитированием
Старый 13.03.2019, 17:43   #3
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

А что, тот же
Код:
Clipboard.Clear;
не помогает?
Black Fregat вне форума Ответить с цитированием
Старый 13.03.2019, 21:04   #4
falsebegin
Форумчанин
 
Регистрация: 23.11.2016
Сообщений: 100
По умолчанию

не помогает вот так работает но мне нужно сделать так чтобы кнопка активировался если есть буфер обмене?
Код:
Clipboard.Clear;
if OpenClipboard(0) then try
EmptyClipboard;
finally
CloseClipboard;
как можно переделать пример if ??????????'' then BitBtn1.Enabled := False else BitBtn1.Enabled := True;

Последний раз редактировалось falsebegin; 13.03.2019 в 21:07.
falsebegin вне форума Ответить с цитированием
Старый 13.03.2019, 21:20   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

https://docs.microsoft.com/en-us/win...board-contents
p51x вне форума Ответить с цитированием
Старый 14.03.2019, 07:44   #6
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

я знаю, что убрать из меню мыши пункт "открыть в прежней версии" можно через реестр - там буквально один параметр занулить нужно. в вашем случае, чтоб убрать 2 пункта, надо тоже как-то через реестр действовать. но с осторожностью.
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace на форуме Ответить с цитированием
Старый 14.03.2019, 10:44   #7
falsebegin
Форумчанин
 
Регистрация: 23.11.2016
Сообщений: 100
По умолчанию

=\\
falsebegin вне форума Ответить с цитированием
Старый 23.03.2019, 16:23   #8
leoparrd
Заблокирован
 
Регистрация: 27.08.2010
Сообщений: 37
По умолчанию

Существует исходник. Прога висит в трее и ловит все обращения к буферу обмена. Остаётся лишь сделать проверку, что собственно попало в буфер. Если это текст в котором содержится имя папки, значит эту строку стереть и всё. Программа имеет высший приоритет, и поэтому любое обращение к буферу обмена пройдёт через неё.
leoparrd вне форума Ответить с цитированием
Старый 23.03.2019, 16:37   #9
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Цитата:
Сообщение от leoparrd Посмотреть сообщение
Существует исходник.
Существует ссылка в посте 5 с примерами.

Цитата:
Сообщение от leoparrd Посмотреть сообщение
Остаётся лишь сделать проверку, что собственно попало в буфер. Если это текст в котором содержится имя папки, значит эту строку стереть и всё.
При копи-пасте файлов/папок в буфере не текст с именем папки.

Цитата:
Сообщение от leoparrd Посмотреть сообщение
Программа имеет высший приоритет, и поэтому любое обращение к буферу обмена пройдёт через неё.
Работает через драйвер на нулевом кольце + запускается очень рано при старте системы + следит за очередью и перестраивает, если кто-то добавился?
p51x вне форума Ответить с цитированием
Старый 24.03.2019, 18:57   #10
leoparrd
Заблокирован
 
Регистрация: 27.08.2010
Сообщений: 37
По умолчанию

Ну не текст, так ещё проще. Там вроде выкидывается флаг CF_HDROP
Как он определён, сразу очистить. Ну надо посмотреть что и как.

Да, всё прекрасно работает.

И никаких нулевых колец и драйверов. Насколько я помню там образуется очередь по времени. Все приложения запущенные после этой программы идут по списку ниже. И поэтому в первую очередь ловит буфер обмена эта прога.

Последний раз редактировалось leoparrd; 24.03.2019 в 19:16.
leoparrd вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование bmp-картинки в буфер обмена My_Number245 Win Api 5 08.05.2018 20:23
Копирование в буфер обмена Abuhamed JavaScript, Ajax 2 05.02.2012 02:20
Копирование в буфер обмена motorway JavaScript, Ajax 1 10.04.2011 07:36
Копирование данных в буфер обмена? ArcticBear Общие вопросы .NET 4 27.11.2009 14:27
Копирование в буфер обмена Xanex Общие вопросы Delphi 5 18.05.2009 23:13