예제 #1
0
		private bool FillData ()
			{
			String ControlFileName = null;
			if (IsDoubleClickRunMethode ())
				ControlFileName = GetDoubleClickRunMethodeSTBFile ();
			String DataDirectoryForPlayingMaterial = m_StandBildPlayingData.NameOfAdditionalDataDirectoryForActiveDescription
						(WPMediaRoot, ControlFileName);
			List<String> PresentationFiles = WMB.Basics.GetFilesFromDirectory
						(DataDirectoryForPlayingMaterial, new String [] { "*.pps" }, 1);
			if (PresentationFiles.Count == 0)
				return false;
			if (!File.Exists (PresentationFiles [0]))
				{
				WMB.Basics.ReportErrorToEventViewer (m_MessageDescriptionID + ".FillData",
					"der Presentation File \""
					+ PresentationFiles [0] + "\" existiert nicht");
				return false;
				}
			try
				{
				if (WMB.Basics.IsTestRun)
					WMB.Basics.ReportInformationToEventViewer (m_MessageDescriptionID + ".FillData",
					          "Gestartet wird \"" + PresentationFiles [0] + "\"");
				m_ActivePresentationInfo = new Presentation_Info (PresentationFiles [0]);
				StartPresentationLoopForOneFile ();
				}
			catch (Exception Excp)
				{
				WMB.Basics.ReportErrorToEventViewer (m_MessageDescriptionID + ".FillData",
					"Folgender Fehler trat beim ControlFile \"" + ControlFileName + "\" bzw. beim Presentation File \""
					+ PresentationFiles [0] + "\" auf\":\r\n"
					+ Excp.ToString());
				return false;
				}
			return true;
			}
		public Presentation_Info GetPlayableLength (String FileName)
			{
			if (!File.Exists (FileName))
				return null;
			try
				{
				Presentation_Info PresentationInfo = new Presentation_Info (FileName);
				Presentation ActivePresentationInstance = m_PowerPoint.Presentations.Open
					(FileName, MsoTriState.msoTrue,
											MsoTriState.msoFalse, MsoTriState.msoFalse);

				_Presentation ActivePresentation = ActivePresentationInstance as _Presentation;
				PresEvents PresentationEvents = ActivePresentationInstance as PresEvents;
				int NumberOfSlides = ActivePresentation.Slides.Count;
				int RunningSlide = 1;
				while (RunningSlide <= NumberOfSlides)
					{
					Slide OneSlideInstance = ActivePresentation.Slides [RunningSlide];
					_Slide OneSlide = OneSlideInstance as _Slide;
					SlideShowTransition TransitionObject = OneSlide.SlideShowTransition;
					double AdvanceTime = 4;
					if (TransitionObject.AdvanceTime > 0)
						AdvanceTime = TransitionObject.AdvanceTime;
					else
						TransitionObject.AdvanceTime = (float) AdvanceTime;
					PresentationInfo.m_PlayLengthPerSlide.Add (AdvanceTime);
					PresentationInfo.m_PlayLength += AdvanceTime;
					RunningSlide++;
					}
				return PresentationInfo;
				}
			catch (Exception Excp)
				{
				WMB.Basics.ReportErrorToEventViewer ("GetPlayableLength",
					"Es trat beim PowerPoint folgender Fehler auf:\r\n" + Excp.Message);
				return null;
				}

			}