예제 #1
0
        protected override void Execute(CodeActivityContext context)
        {
            var el = Element.Get(context);

            if (el == null)
            {
                throw new ArgumentException("element cannot be null");
            }
            var doubleclick = false;

            if (DoubleClick != null)
            {
                doubleclick = DoubleClick.Get(context);
            }
            var button       = Button.Get(context);
            var virtualClick = false;

            if (VirtualClick != null)
            {
                virtualClick = VirtualClick.Get(context);
            }
            var animatemouse = false;

            if (AnimateMouse != null)
            {
                animatemouse = AnimateMouse.Get(context);
            }
            var keymodifiers = "";

            if (KeyModifiers != null)
            {
                keymodifiers = KeyModifiers.Get(context);
            }

            var disposes = new List <IDisposable>();
            var keys     = TypeText.GetKeys(keymodifiers);

            foreach (var vk in keys)
            {
                disposes.Add(FlaUI.Core.Input.Keyboard.Pressing(vk));
            }

            var _button = (Input.MouseButton)button;

            el.Click(virtualClick, _button, OffsetX, OffsetY, doubleclick, animatemouse);

            disposes.ForEach(x => { x.Dispose(); });

            TimeSpan postwait = TimeSpan.Zero;

            if (PostWait != null)
            {
                postwait = PostWait.Get(context);
            }
            if (postwait != TimeSpan.Zero)
            {
                System.Threading.Thread.Sleep(postwait);
            }
        }
예제 #2
0
 private void OnKeyDown(Input.InputEventArgs e)
 {
     if (!isRecording)
     {
         return;
     }
     if (e.Key == KeyboardKey.Escape)
     {
         StopRecordPlugins();
         InputDriver.Instance.CallNext   = true;
         InputDriver.Instance.OnKeyDown -= OnKeyDown;
         InputDriver.Instance.OnKeyUp   -= OnKeyUp;
         GenericTools.restore(GenericTools.mainWindow);
         return;
     }
     // if (e.Key == KeyboardKey. 255) return;
     try
     {
         if (mainTabControl.SelectedContent is Views.WFDesigner view)
         {
             if (view.lastinserted != null && view.lastinserted is Activities.TypeText)
             {
                 Log.Debug("re-use existing TypeText");
                 var item = (Activities.TypeText)view.lastinserted;
                 item.AddKey(new Activities.vKey((FlaUI.Core.WindowsAPI.VirtualKeyShort)e.Key, false), view.lastinsertedmodel);
             }
             else
             {
                 Log.Debug("Add new TypeText");
                 var rme = new Activities.TypeText();
                 view.lastinsertedmodel = view.addActivity(rme);
                 rme.AddKey(new Activities.vKey((FlaUI.Core.WindowsAPI.VirtualKeyShort)e.Key, false), view.lastinsertedmodel);
                 view.lastinserted = rme;
             }
         }
     }
     catch (Exception ex)
     {
         Log.Error(ex.ToString());
     }
 }