我有一个用C#和.Net 2.0编写的简单应用程序,它在一个循环中显示几个PowerPoint 2003文件。 (它将用于我们自助餐厅的信息板)应用程序在我的开发机器上运行正常但是当我将它部署到另一台机器时,我注册的SlideShowNextSlide和PresentationClose的事件从未被触发。我尝试用这种方法注册事件。
private void InitPPT()
{
app.SlideShowNextSlide += new Microsoft.Office.Interop.PowerPoint.EApplication_SlideShowNextSlideEventHandler(app_SlideShowNextSlide);
app.PresentationClose += new Microsoft.Office.Interop.PowerPoint.EApplication_PresentationCloseEventHandler(app_PresentationClose);
app.SlideShowEnd += new Microsoft.Office.Interop.PowerPoint.EApplication_SlideShowEndEventHandler(app_PresentationClose);
}
通过这种方法,我找到了here:
private void InitPPT()
{
IConnectionPointContainer oConnPointContainer = (IConnectionPointContainer)app;
Guid guid = typeof(Microsoft.Office.Interop.PowerPoint.EApplication).GUID;
oConnPointContainer.FindConnectionPoint(ref guid, out m_oConnectionPoint);
m_oConnectionPoint.Advise(this, out m_Cookie);
}
我是否需要在客户端计算机上注册一些dll,或者我错过了什么。
答案 0 :(得分:1)
我认为这是因为我试图从本地用户帐户运行我的应用程序,但冒充域帐户,以便我可以访问网络驱动器。我已经更改了我的应用程序,因此它只会在执行网络操作时模拟域帐户,而不是在应用程序启动时。