예제 #1
0
        public string GetByKey(string key)
        {
            switch (key)
            {
            case TargetUrlKey:
                return(TargetUrl);

            case PositionsKey:
                return(Positions);

            case KioskModeKey:
                return(KioskMode.ToString());

            case DeviceIdKey:
                return(DeviceId);

            case GroupIdKey:
                return(GroupId);

            case PubKeyKey:
                return(Convert.ToBase64String(PubKey));

            case PrivKeyKey:
                return(Convert.ToBase64String(PrivKey));

            default:
                throw new ArgumentException("Unknown settings key " + key);
            }
        }
예제 #2
0
        protected override void Execute(CodeActivityContext context)
        {
            var filename      = Filename.Get(context);
            var startingslide = StartingSlide.Get(context);
            var kioskmode     = KioskMode.Get(context);
            var endingslide   = EndingSlide.Get(context);
            var advancetime   = AdvanceTime.Get(context);

            filename = Environment.ExpandEnvironmentVariables(filename);
            Application  activeObject = null;
            Presentation document     = null;

            try
            {
                activeObject = (Application)Marshal.GetActiveObject("Powerpoint.Application");
                foreach (Presentation current in activeObject.Presentations)
                {
                    if (current.FullName == filename)
                    {
                        document = current;
                        break;
                    }
                }
            }
            catch
            {
                activeObject = null;
            }
            finally
            {
                if (activeObject == null)
                {
                    activeObject = (Application)Activator.CreateInstance(Marshal.GetTypeFromCLSID(new Guid("91493441-5A91-11CF-8700-00AA0060263B")));
                }
                activeObject.Visible = Microsoft.Office.Core.MsoTriState.msoTrue;
            }
            if (document == null)
            {
                document = activeObject.Presentations.Open(filename);
            }
            document.Close();
            document = activeObject.Presentations.Open(filename);

            if (startingslide < 1)
            {
                startingslide = 1;
            }
            if (endingslide < 1 || endingslide > document.Slides.Count)
            {
                endingslide = document.Slides.Count;
            }
            if (kioskmode)
            {
                document.SlideShowSettings.ShowType = PpSlideShowType.ppShowTypeKiosk;
            }
            document.SlideShowSettings.ShowType    = PpSlideShowType.ppShowTypeSpeaker;
            document.SlideShowSettings.RangeType   = PpSlideShowRangeType.ppShowSlideRange;
            document.SlideShowSettings.AdvanceMode = PpSlideShowAdvanceMode.ppSlideShowManualAdvance;
            document.Slides.Range().SlideShowTransition.AdvanceTime = 0;
            document.Slides.Range().SlideShowTransition.AdvanceOnTime = Microsoft.Office.Core.MsoTriState.msoFalse;
            document.Slides.Range().SlideShowTransition.AdvanceOnClick = Microsoft.Office.Core.MsoTriState.msoTrue;
            //activeObject.ActivePresentation.Application.ActivePresentation.Slides[startingslide].Select();

            // StartingSlide does not seem to work the first time we open a powerpoint, so lets manually move forward
            document.SlideShowSettings.StartingSlide = startingslide;
            //activeObject.ActivePresentation.Application.ActiveWindow.Panes[2].Activate();


            SlideShowWindow obj          = document.SlideShowSettings.Run();
            SlideShowView   objSlideShow = document.SlideShowWindow.View;

            try
            {
                //while (objSlideShow.CurrentShowPosition < startingslide)
                //{
                //    objSlideShow.Next();
                //}
                while (objSlideShow.CurrentShowPosition < endingslide || objSlideShow.State != PpSlideShowState.ppSlideShowDone)
                {
                    if (advancetime != TimeSpan.Zero)
                    {
                        System.Threading.Thread.Sleep(advancetime);
                        objSlideShow.Next();
                    }
                    else
                    {
                        System.Threading.Thread.Sleep(500);
                    }
                }
            }
            catch (COMException)
            {
            }
            catch (Exception)
            {
                throw;
            }
            try
            {
                if (objSlideShow != null && advancetime != TimeSpan.Zero)
                {
                    objSlideShow.Exit();
                }
            }
            catch (Exception)
            {
            }
            if (CloseAtEnd.Get(context))
            {
                try
                {
                    document.Close();
                    if (activeObject.Presentations.Count == 0)
                    {
                        activeObject.Quit();
                    }
                }
                catch (Exception)
                {
                    throw;
                }
            }
        }
예제 #3
0
        private void DoUILayoutCalculation()
        {
            m_createMonthlyOnStart = false;
            chosenMonthlyRateIndex = -1;
            m_handicapped = false;
            m_handicappedText = TK_Handi_Off;
            m_sortser = "";

            switch (m_rates.Count)
            {
                //will have to add 12 to the margin numbers
                case 1:
                    offset = 396;
                    break;
                case 2:
                    offset = 257;
                    break;
                case 3:
                    offset = 138;
                    break;
                case 4:
                    offset = 12;
                    break;
                default:
                    break;
            }

            rateButtons.Add(rateBtn1);
            rateButtons.Add(rateBtn2);
            rateButtons.Add(rateBtn3);
            rateButtons.Add(rateBtn4);

            m_rateBorders.Add(borderRateBtn1);
            m_rateBorders.Add(borderRateBtn2);
            m_rateBorders.Add(borderRateBtn3);
            m_rateBorders.Add(borderRateBtn4);

            foreach (Button b in rateButtons)
            {
                b.FontSize = 36.0;
                b.Visibility = Visibility.Hidden;
            }

            handicappedBtn.Content = m_handicappedText;
            handicappedBtn.Visibility = Visibility.Hidden;
            handicappedBtn.FontSize = 35.0;
            setButtonImage(BackgroundType.BlueButton, rateBtn2);

            m_timer1 = new DispatcherTimer();
            m_timer1.Tick += new EventHandler(timer1_Tick);
            m_timer1.Interval = new TimeSpan(0, 0, 0, 0, 200); // 200 ms

            m_cardSwipeTimer = new DispatcherTimer();
            m_cardSwipeTimer.Tick += new EventHandler(cardSwipeTimer_Tick);
            m_cardSwipeTimer.Interval = new TimeSpan(0, 0, 0, 0, 200); // 200 ms

            m_displayTimer = new DispatcherTimer();
            m_displayTimer.Tick += new EventHandler(displayTimer_Tick);
            m_displayTimerDefaultInterval = new TimeSpan(0, 0, 0, 10, 0); // 10 s
            m_displayTimer.Interval = m_displayTimerDefaultInterval;

            m_timeoutTimer = new DispatcherTimer();
            m_timeoutTimer.Tick += new EventHandler(timeoutTimer_Tick);
            m_timeoutTimer.Interval = new TimeSpan(0, 0, 2, 0, 0); // 120 s (2 minutes)

            m_storageState = m_initialStorageState;
            m_retrievalState = m_initialRetrievalState;
            m_accountState = MonthlyAccountStates.NotSelected;
            vehicleRetrieved = false;

            m_lastKillBitCheck = DateTime.Now;
            m_killBitInterval = new TimeSpan(0, 0, 0, 2, 0); // 2 s

            switch (Constants.KIOSKID[0])
            {
                case '0':
                    m_kioskMode = KioskMode.Storage;
                    break;
                case '9':
                    m_kioskMode = KioskMode.Retrieval;
                    break;
                default:
                    throw new InvalidOperationException("Invalid kiosk id from command line: " + Constants.KIOSKID);
            }

            //initComm();
        }
예제 #4
0
 public WindowMonitorOperation(KioskMode kioskMode, ILogger logger, IWindowMonitor windowMonitor)
 {
     this.kioskMode     = kioskMode;
     this.logger        = logger;
     this.windowMonitor = windowMonitor;
 }
예제 #5
0
        // ---------------------------------------------------------------------------------------
        // reset: resets kiosk to initial state
        // ---------------------------------------------------------------------------------------
        private void reset(KioskMode kioskMode)
        {
            m_kioskMode = kioskMode;
            Title = "Kiosk " + Constants.KIOSKID;
            disableOKCancel();
            disableLineDisplay();
            disableContextButton();
            m_monthlyAccountCre = false;
            m_savedCard = null;
            vehicleRetrieved = false;
            chosenMonthlyRateIndex = -1;
            m_handicapped = false;
            m_handicappedText = TK_Handi_Off;
            m_sortser = "";
            resetMousePosition();

            foreach (Button b in rateButtons)
            {
                setButtonImage(BackgroundType.BlueButton, b);
            }
            setBackground(BackgroundType.Active);

            switch (kioskMode)
            {
                case KioskMode.Storage:
                    setState(StorageStates.WaitForReady, "");
                    //sendMsg(KioskMsgType.user_cancel, "");
                    break;
                case KioskMode.Retrieval:
                    setState(RetrievalStates.Initial, "");
                    //sendMsg(KioskMsgType.user_cancel, "");
                    break;
            }
        }