![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| AlexLF |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 23.4.2014 Репутация: нет Всего: нет |
Вопросы на понимание к уважаемой публике по взаимодействию между приложениями (я понимаю в php и JavaScript, но не в десктопных приложениях). Мне это нужно для заявки на патент и моего проекта.
Допустим, мы делаем приложение "Антивирус" (1 на рисунке), которое проверяет файлы на диске. Файлы для анализа ему указывает (стрелка 3) другие приложения. Например и в частности, приложение "Редактор" (2). Вопрос 1. Как можно реализовать доставку пути к файлу, которое передается от приложения "Редактор" к приложению "Антивирус". Для веб-приложений, это я знаю в теории, взаимодействие между программами происходит через порты. Как обстоят дела и как это формулируется (в грамотных выражениях) для десктопных приложений? Слово API я слышал, но никогда сам не применял. "Приложение "Антивирус" предоставляет API сторонним приложениям …" – или как это называется правильными словами. Далее. "Антивирус" может работать с самыми разными приложениями. И не всем им можно доверять. Я полагаю, что можно сделать область (область 4, выделенная пунктиром), которая находится под управлением "Антивируса". Там находятся кнопки "Проверить" и результаты проверки. Вопрос 2. Можно ли сделать так, что "Редактор" не будет знать, что находится в окошке, которое контролируется "Антивирусом"? Вопрос 3. Можно ли сделать так, что область, выделенная пунктиром, будет перемещаться, при перемещении окна "Редактора" (мышкой), сворачиваться по крестику и правильно перекрываться другими окнами. Пользователь вообще не должен догадываться, что эта область находится под контролем "Антивируса". (В HTML это бы называлось iframe.) Далее. Результаты анализа (результаты проверки на вирусы) могут храниться в хранилище данных "Антивируса" (5 на рисунке). (Чтобы не проверять файлы на вирусы каждый раз.) Например: хеш файла такой-то – вирусов нет. Эти результаты также являются приватными. Вопрос 4: где существуют места на жестком диске, где приложение "Антивирус" может устроить свое хранилище, так, чтобы оно было защищено от доступа других приложений? Предполагаю из общих, что на диск С: (где установлена система) или C:/User должны быть регламентированы права доступа приложений. Или как обстоят дела с доступом вообще? Вопрос 5: Надо ли шифровать данные в хранилище? – чтобы другие приложения не могли прочитать. Вопрос 6: Могут ли сторонние приложения прочитать результаты анализа, которые сейчас находятся в оперативной памяти "Антивируса"? Присоединённый файл ( Кол-во скачиваний: 15 )
Снимок___копия__png_.PNG 810,19 Kb |
|||
|
||||
| tzirechnoy |
|
||||||||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 2 Всего: 16 |
По-моему, зря Вы конкретно в "Антивирус" полезли. Криптозащита и защита от НСД -- это две области, принцыпиально не жалующие новичков.
Ну да, если это именно API (интэрфейс, описанный в терминах какого-то языка программирования) -- то так и называется. Типичное API описано либо на языке Си (файлы .h и библиотеки .dll), либо, под виндами -- в виде COM-интэрфейса. Прежде чем писать своё -- имеет прямой смысл попробовать написать что-то под подобные библиотеки, чтобы посмотреть, как оно у людей делается. Начать советую с Си, как минимум, потому, что он более портируем, чем COM. Впрочем, кроме API можно предоставлять и протокол доступа. Такая вещь, на самом деле, должна быть знакома дажэ php-программисту. Указываешь каким-нибудь способом метод соединения (например, tcp/ip-сокет или, например, под виндой -- named pipe с фиксированным именем), открываешь его в антивирусе и в приложэнии -- вот и получил двунаправленную трубу, по которой можно передавать какие-то данные. Определить для них протокол (как веб-программисту тебе будет проще взять для начала что-то вроде json-rpc), и по нему -- гонять все данные.
Как-то -- вроде можно. Но ненадолго, т.е. временно только перехватив на себя весь рабочий стол. Посмотри, как это сделали в UAC.
Вместе с 2) -- скорее всего, нет.
Начни, пожалуй, отсюда http://msdn.microsoft.com/en-us/library/wi...0(v=vs.85).aspx Хотя это всё, конечно, как вводная никуда не годится. Не могу придумать сейчас ничего сильно лучшэ.
Это несущественно на этом уровне.
Да. Но, если ты правильно врубился в 4) -- то не любые приложэния. |
||||||||||||
|
|||||||||||||
| AlexLF |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 23.4.2014 Репутация: нет Всего: нет |
Спасибо за комменты, переварю - может быть напишу сюда, как понял.
"Антивирус" - не антивирус, и "Редактор" - не редактор. Я занимаюсь заявкой на изобретение и программировать на С не собираюсь. Это будут делать программисты, мне нужно понять сейчас, что возможно, что нет. |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Судя по вашей картинке и вопросам изобрели вы велосипед Ответы на ваши вопросы сильно зависят от 2х других вопросов -
Ответы на вопросы 4-6 зависят от степени пароноидальности "Антивируса" |
|||
|
||||
| AlexLF |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 23.4.2014 Репутация: нет Всего: нет |
Да, "Антивирус" о "Редакторе" знает. Наверно, "Редактору" сообщен какой-либо секретный номер, по котором он обращается к "Антивирусу". Чтобы не каждое приложение могло обращаться. И, пожалуй что, программисты "Редактора" предупреждены, что не стоит читать содержимое пунктирной области. Иначе их исключат из программы.
Не очень понятно. Судя по Википедии, ActiveX - это про использование внутри Internet Explorer небольших приложений...
Это полезный весипед. |
||||||
|
|||||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Не читайте википедию на ночь ActiveX это технология, позволяющая использовать объекты из одного приложения (или dll), в другом в виде 'черного ящика'. А ActiveX Controls - это ее расширение, позволяющее использовать не только объекты, но и экранные образы. В вашем случае "Антивирус" - это ActiveX сервер (в виде исполняемого приложения), а область 4 в "Редакторе" - это ActiveX Control, который управляется из ActiveX сервера (Антивируса). При этом Редактор не в курсе, что именно показывается в области 4. Для передачи от Редактора к Антивирусу информации об обрабатываемых файлах (стрелка 3) можно использовать другой ActiveX объект (не визуальный), который будет хостится тем же ActiveX сервером (Антивирусом). |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |