Есть ли способ зарегистрировать /ловить события PCOMM в приложении Windows Forms? Все работает нормально.
Как только соединение установлено, мне нужно знать, закрыл ли пользователь /отключил соединение в приложении PCOMM.
Обработчики событий, предоставленные в библиотеке Interop Они ожидают, что события будут зарегистрированы еще до загрузки формы. События < /p>
Самый простой пример из образца приложения консоли: < /p>
AutPSTypeLibrary.AutPS _ps = new AutPSTypeLibrary.AutPS();
_ps.NotifyPSEvent += new IPSEvent_NotifyPSEventEventHandler(CallPSEvent);
connMgr.StartSessionByWSFile(); // This is a private method, which opens a session connection using ws profile file.
_ps.SetConnectionByName("A");
_ps.RegisterPSEvent(true);
System.Windows.Forms.Application.Run(); // blocking call in the console application
< /code>
Из -за блокирующего вызова в приложении консоли события правильно запускаются в приложении консоли. < /p>
Я не могу сделать это Работайте в приложении Windows Forms, когда я пытаюсь установить события после Application.Run () из программы запуска. < /p>
Есть ли способ сделать эту работу, спасибо за любую помощь ! < /p>
добавлен Код конструктора формы, как и задание. < /P>
public partial class PCOMM : Form
{
AutConnMgr _connMgr = new AutConnMgr();
AutPS _autPS = new AutPS();
AutSess2 _autSess = new AutSess2();
char _sessionLetter;
public PCOMM()
{
InitializeComponent();
_connMgr.NotifyStartStop += new IStartEvent_NotifyStartStopEventHandler(_connMgr_NotifyStartStop);
axpcommDisplay.pcsOcxStartSession((sbyte)'A', "UHO.WS");
_autPS.SetConnectionByName("A");
_autPS.NotifyPSStop += new IPSEvent_NotifyPSStopEventHandler(_autPS_NotifyPSStop);
_autSess.SetConnectionByName("A");
_autSess.NotifySessionStop += new ISessionEvent_NotifySessionStopEventHandler(_autSess_NotifySessionStop);
_autSess.RegisterSessionEvent(UpdateType.pcPSUpdate);
_autPS.RegisterPSEvent(false);
}
}
public class StartUp
{
[STAThread]
public static void Main(string[] args)
{
PCOMM ps = new PCOMM();
Application.Run(ps);
}
}
Подробнее здесь: https://stackoverflow.com/questions/794 ... pplication