Защита буфера C#
От: ichensky Украина https://github.com/ichensky
Дата: 16.06.13 11:47
Оценка:
Здравствуйте.
Как защитить буфер обмена данных от посторонних программ?
В определенный момент хочу расшарить буфер только на несколько процессов.
Підтримати Україну у боротьбі з країною-терористом.

https://prytulafoundation.org/
https://u24.gov.ua/

Слава Збройним Силам України!!! Героям слава!!!
Re: Защита буфера C#
От: vvlad.net  
Дата: 16.06.13 14:20
Оценка:
Здравствуйте, ichensky, Вы писали:

I>Здравствуйте.

I>Как защитить буфер обмена данных от посторонних программ?
I>В определенный момент хочу расшарить буфер только на несколько процессов.

1. Clipboard НЕ для коммуникации между процессами. Точка. dot.
2. Что значит "защитить буфер обмена данных"?
Re: Защита буфера C#
От: Clevelus Россия http://clevelus.ru
Дата: 16.06.13 16:52
Оценка:
1. Никак.
2. Никто не запрещает использовать шифрование (или кодирование), тогда информация в буфере сторонним программам будет просто бесполезна.

ЗЫ: нет всех данных, но, скорее всего, у Вас неправильная модель обмена данными между приложениями.
Доброго времени суток! Мир Вам! С уважением Clevelus.
Если мой ответ понравился — оцените, ни на что не влияет, но будет приятно.
Re[2]: Защита буфера C#
От: ichensky Украина https://github.com/ichensky
Дата: 16.06.13 19:37
Оценка:
Здравствуйте, vvlad.net, Вы писали:

VN>1. Clipboard НЕ для коммуникации между процессами. Точка. dot.

VN>2. Что значит "защитить буфер обмена данных"?

Так-то оно так, есть thrid paty программа, к коду которой нет доступа и модифицировать которую нельзя.
Есть мой код, пользователь копирует с него данные в буфер и вставляет в thrid paty приложение.
Может быть есть способ как-то запретить на время вызов winapi функций которые возвращают данные буфера, для всех приложений кроме обозначенных?
Підтримати Україну у боротьбі з країною-терористом.

https://prytulafoundation.org/
https://u24.gov.ua/

Слава Збройним Силам України!!! Героям слава!!!
Re[3]: Защита буфера C#
От: Clevelus Россия http://clevelus.ru
Дата: 16.06.13 20:29
Оценка: 2 (1) +1
Здравствуйте, ichensky, Вы писали:

I>Здравствуйте, vvlad.net, Вы писали:


VN>>1. Clipboard НЕ для коммуникации между процессами. Точка. dot.

VN>>2. Что значит "защитить буфер обмена данных"?

I>Так-то оно так, есть thrid paty программа, к коду которой нет доступа и модифицировать которую нельзя.

I>Есть мой код, пользователь копирует с него данные в буфер и вставляет в thrid paty приложение.
I>Может быть есть способ как-то запретить на время вызов winapi функций которые возвращают данные буфера, для всех приложений кроме обозначенных?
Нет. Даже если Вы это сделаете получите уйму геммора.

Только вот зачем такие заморочки? Пусть Ваша программа вставляет данные сразу в нужный контрол свои данные. Зачем для этого использовать буфер обмена? Нужно только проверять, что приложение запущено, открыто место в нем с контролом. И вставляйте свои данные.
Доброго времени суток! Мир Вам! С уважением Clevelus.
Если мой ответ понравился — оцените, ни на что не влияет, но будет приятно.
Re[4]: Защита буфера C#
От: hardcase Пират http://nemerle.org
Дата: 17.06.13 16:08
Оценка:
Здравствуйте, Clevelus, Вы писали:

C>Нужно только проверять, что приложение запущено, открыто место в нем с контролом. И вставляйте свои данные.


Контрол еще нужно найти. Если у него нет WinApi хэндла, то может ничего не получится вообще.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[3]: Защита буфера C#
От: VladFein США  
Дата: 17.06.13 16:24
Оценка:
Здравствуйте, ichensky, Вы писали:

I>Здравствуйте, vvlad.net, Вы писали:


VN>>1. Clipboard НЕ для коммуникации между процессами. Точка. dot.

VN>>2. Что значит "защитить буфер обмена данных"?

I>Так-то оно так, есть thrid paty программа, к коду которой нет доступа и модифицировать которую нельзя.

I>Есть мой код, пользователь копирует с него данные в буфер и вставляет в thrid paty приложение.
I>Может быть есть способ как-то запретить на время вызов winapi функций которые возвращают данные буфера, для всех приложений кроме обозначенных?

Можно попытаться с применением delayed clipboard rendering.
Вызываете SetClipboardData() с hMem=0.
Когда получите WM_RENDERFORMAT, проверьте Foregraund процесс.
Re[5]: Защита буфера C#
От: Clevelus Россия http://clevelus.ru
Дата: 18.06.13 07:58
Оценка:
H>Контрол еще нужно найти. Если у него нет WinApi хэндла, то может ничего не получится вообще.

Наличие хендла проверяется три секунды, одновременно с "поиском".

Все остальные решения будут кривыми, и очень кривыми. А вероятность того, что хендла нет равна 1%.
Доброго времени суток! Мир Вам! С уважением Clevelus.
Если мой ответ понравился — оцените, ни на что не влияет, но будет приятно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.