Попытка подключить библиотеку COM, которую мы используем, чтобы говорить с вещами в .NET. В VB6, то же самое мог, было сделано, просто делаяПоймать COM-события?
private withevents _monitor as new Application
и тогда я мог бы сделать
monitor_onPrintText(byval msg as string, byval draw as boolean)
и он будет работать, когда что-то было напечатано на стороне монитора, он будет стрелять событие и отправить нам обратно. Однако в C# я могу выполнять команды, но я не получаю нормальные вещи, как в VB6. Я просто любопытно, что я делаю не так, как все, что я прочитал, говорит
_monitor.onPrintText += onPrintText;
должен работать, но я не в состоянии получить событие огонь.
Я пробовал this codeproject project, and MSDN и кучу других ресурсов там, но я не могу получить эту чертову вещь для работы! Вот основы кода, я добавил все три «интерфейса», созданные путем импорта объекта com, и я пробовал всевозможные комбинации. Мой «запуск» скрипт должен вернуть истинный, и огонь.Пушка onPrintText событие несколько раз с некоторыми сообщениями по пути (или, по крайней мере, вот что он делает в VB6 ...)
using System;
using monitorLib;
public class MyClass
{
private Application _monitor;
public MyClass()
{
_monitor = new Application;
_monitor.onPrintText += onPrintText;
// Doing this runs a "script" which causes the
// event to fire whenever print is called from it.
_monitor.evaluate("run(\"startup\");");
}
public dynamic Evaluate(string pScript)
{
return _monitor.evaluate(pScript);
}
public void PrintText(string p_text, bool p_drawNow)
{
debug.print(p_text);
}
}
Я немного смущен относительно того, что вы пытаетесь сделать. Вы хотите отправить текст на объект COM? Или вы хотите захватить события, запущенные объектом COM? или оба? – paqogomez
Отредактировано на основе предложений от Hans – Calvin
Пробовал ли вы 'var source = (IApplicationEvents_Events) _monitor;' как это было предложено @Hans? – paqogomez