Прислушайтесь к событиям в другом приложении

В ggplot2 версии 2.0.0 и выше вам нужно использовать method.args для передачи аргументов в geom_smooth(), например:

library(ggplot2)
ggplot(data = df22, aes(x = Date, y = Packages)) + 
   geom_point() + 
   geom_smooth(method = 'nls', formula = y ~ exp(a * x + b), 
          method.args=list(start = c(a = 0.001, b = 3)), se = FALSE)

Из файла ggplot2 NEWS (выделено мной):

Слои теперь гораздо более строгие относительно своих аргументов - вы получите сообщение об ошибке, если вы предоставили аргумент, который не является эстетическим или параметром. Это, вероятно, вызовет кратковременную боль, но в долгосрочной перспективе это значительно облегчит выявление орфографических ошибок и других ошибок (# 1293).

Это изменение нарушает горстку геометрий / которые использовали ..., чтобы передать дополнительные аргументы в базовые вычисления. Теперь geom_smooth () / stat_smooth () и geom_quantile () / stat_quantile () вместо этого используют метод.args (# 1245, # 1289); и stat_summary () (# 1242), stat_summary_hex () и stat_summary2d () используют fun.args.

blockquote>

19
задан Bill the Lizard 24 April 2012 в 19:40
поделиться

5 ответов

Для двух приложений (разделяют процессы) для обмена событиями они должны договориться, как эти события передаются. Существует много различных способов сделать это, и точно какой метод использовать может зависеть от архитектуры и контекста. Общий термин для этого вида обмена информацией между процессами Межпроцессное взаимодействие (IPC) . Там существует много стандартных способов сделать IPC, при этом наиболее распространенными являются файлы, каналы, (сетевые) сокеты, вызовы удаленной процедуры (RPC) и общая память. В Windows также распространено использовать сообщения .

окна

, я не уверен, как это работает на.NET/C# приложения в Windows, но в собственных приложениях Win32 Вы можете зацепляться к циклу сообщения внешних процессов и "шпионить" за сообщениями, которые они отправляют . Если Ваша программа генерирует событие сообщений, когда желаемая функция вызвана, это могло быть способом обнаружить его.

, Если Вы реализовываете оба приложения сами, Вы можете, принял решение использовать любой метод IPC, который Вы предпочитаете. Сетевые сокеты и высокоуровневые основанные на сокете протоколы как HTTP, XML-RPC и SOAP очень популярны в эти дни, когда они позволяют Вам, действительно запускают приложения на различных реальных машинах также (учитывая, что они соединены через сеть).

13
ответ дан 30 November 2019 в 05:04
поделиться

Можно попробовать Управляемый Шпион и для программного доступа , ManagedSpyLib

ManagedSpyLib представляет класс под названием ControlProxy. ControlProxy является представлением Системы. Windows. Формы. Управление в другом процессе. ControlProxy позволяет Вам получать или устанавливать свойства и подписываться на события, как будто Вы работали в целевом процессе. Используйте ManagedSpyLib для тестирования автоматизации, регистрацию событий для совместимости, межпроцессное взаимодействие или тестирование методом "белого ящика".

, Но это не могло бы работать на Вас, зависит, может ли ControlProxy так или иначе получить доступ к событию, которое Вы после в рамках Вашего стороннего приложения.

Вы могли также использовать , Reflexil

Reflexil позволяет модификации IL при помощи мощного Моно. Библиотека Cecil записана Jb EVAIN. Reflexil работает как плагин Отражателя и направлен особенно к обработке кода IL. Это выполняет это путем предложения, чтобы полный редактор инструкции и путем разрешения C#/VB.NET кодировал инжекцию.

2
ответ дан 30 November 2019 в 05:04
поделиться

Можно или использовать дистанционную работу или WCF. См. http://msdn.microsoft.com/en-us/library/aa730857 (По сравнению с 80) .aspx#netremotewcf_topic7.

1
ответ дан 30 November 2019 в 05:04
поделиться

Какова природа того события OnEmailSent из того приложения сторонних производителей? Я имею в виду, как Вы знаете, что приложение инициировало такое событие?

, Если Вы являетесь планированием выполнения межпроцессного взаимодействия, первый вопрос, необходимо спросить себя: это действительно необходимо?

, не подвергая сомнению Ваши побуждения, если действительно необходимо сделать межпроцессное взаимодействие, Вам будет нужен своего рода механизм. Список длинен, очень долго. От простого WM_DATA обменивается сообщениями к пользовательским протоколам TCP к очень сложным веб-сервисам, требующим дополнительных инфраструктур.

Это приносит вопрос, что это, Вы пытаетесь сделать точно? Каково это приложение сторонних производителей, Вы не имеете никакого контроля?

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

0
ответ дан 30 November 2019 в 05:04
поделиться

Можно реализовать подобный сценарий с уведомлениями об изменении запроса SQL Server 2005 года maintaing персистентный SqlConnection с приложением.NET, которое блоки до данных изменяют в базе данных.

См. http://www.code-magazine.com/article.aspx?quickid=0605061 .

0
ответ дан 30 November 2019 в 05:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: