예제 #1
0
 void AddEvent(IMacroEvent mEvent)
 {
     ListViewItem i = new ListViewItem(mEvent.GetEventType());
     i.SubItems.Add(mEvent.GetEventString());
     i.ImageKey = mEvent.GetEventType();
     i.Tag = mEvent;
     lvEvents.Items.Add(i);
     CurrentMacro.Add(mEvent);
 }
예제 #2
0
        void AddEvent(IMacroEvent mEvent)
        {
            ListViewItem i = new ListViewItem(mEvent.GetEventType());

            i.SubItems.Add(mEvent.GetEventString());
            i.ImageKey = mEvent.GetEventType();
            i.Tag      = mEvent;
            lvEvents.Items.Add(i);
            CurrentMacro.Add(mEvent);
        }
예제 #3
0
 private void removeSelectedEventToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (lvEvents.SelectedItems.Count > 0)
     {
         foreach (ListViewItem i in lvEvents.SelectedItems)
         {
             // ListViewItem i = lvEvents.SelectedItems[0];
             IMacroEvent mEvent = (IMacroEvent)i.Tag;
             CurrentMacro.Remove(mEvent);
             Recorder.Remove(mEvent);
             lvEvents.Items.Remove(i);
         }
     }
 }
예제 #4
0
        private void moveHereToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (lvEvents.SelectedItems.Count > 0)
            {
                int moveIndex = lvEvents.SelectedIndices[0];
                for (int i = SelectedItems.Count - 1; i >= 0; i--)
                {
                    IMacroEvent mEvent = (IMacroEvent)SelectedItems[i].Tag;

                    lvEvents.Items.Remove(SelectedItems[i]);
                    CurrentMacro.Remove(mEvent);

                    lvEvents.Items.Insert(moveIndex, SelectedItems[i]);
                    CurrentMacro.Insert(moveIndex, mEvent);
                }
            }
        }
예제 #5
0
        public formMacroPlaying(IMacroEvent[] events)
        {
            InitializeComponent();

            this.Location = new Point(Screen.PrimaryScreen.WorkingArea.Right - this.Width, Screen.PrimaryScreen.WorkingArea.Bottom - this.Height);

            new Thread(() =>
            {
                foreach(IMacroEvent e in events)
                {
                    e.ExecuteEvent();
                }
                Invoke((MethodInvoker)delegate()
                {
                    this.DialogResult = System.Windows.Forms.DialogResult.OK;
                });
            }).Start();
        }
예제 #6
0
 void Recorder_OnEvent(IMacroEvent mEvent)
 {
     AddEvent(mEvent);
 }
예제 #7
0
        private void loadAMacroToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string filePath = string.Empty;

            using (OpenFileDialog ofd = new OpenFileDialog())
            {
                ofd.Filter = "Macro File|*.bmr";
                if (ofd.ShowDialog() != System.Windows.Forms.DialogResult.OK)
                {
                    return;
                }
                filePath = ofd.FileName;
            }
            try
            {
                IMacroEvent[] loadedEvents = null;
                using (FileStream fs = new FileStream(filePath, FileMode.Open))
                    using (BinaryReader br = new BinaryReader(fs))
                    {
                        loadedEvents = new IMacroEvent[br.ReadInt32()];
                        int eventIndex = 0;
                        while (fs.Position != fs.Length)
                        {
                            MacroEventType mType = (MacroEventType)br.ReadByte();
                            if (mType == MacroEventType.Delay)
                            {
                                loadedEvents[eventIndex] = new MacroEvent_Delay(br.ReadInt32());
                            }

                            if (mType == MacroEventType.Keyboard)
                            {
                                eKeyboardEvent kbEvent   = (eKeyboardEvent)br.ReadInt32();
                                KeyboardEvent  eventData = new KeyboardEvent();
                                eventData.vKeyCode       = br.ReadUInt32();
                                eventData.scanCode       = br.ReadUInt32();
                                eventData.Flags          = br.ReadUInt32();
                                eventData.Time           = 0;
                                eventData.dwExtraInfo    = WinApi.GetMessageExtraInfo();
                                loadedEvents[eventIndex] = new MacroEvent_Keyboard(kbEvent, eventData);
                            }

                            if (mType == MacroEventType.Mouse)
                            {
                                eMouseButton mButton = (eMouseButton)br.ReadInt32();
                                MouseEvent   mEvent  = new MouseEvent();
                                mEvent.mouseData         = br.ReadUInt32();
                                mEvent.Location          = new mPoint();
                                mEvent.Location.X        = br.ReadInt32();
                                mEvent.Location.Y        = br.ReadInt32();
                                mEvent.Flags             = br.ReadUInt32();
                                loadedEvents[eventIndex] = new MacroEvent_Mouse(mEvent, mButton);
                            }
                            eventIndex++;
                        }
                    }
                ClearCurrent();
                foreach (IMacroEvent lEvent in loadedEvents)
                {
                    AddEvent(lEvent);
                }
                MessageBox.Show("Loaded successfully");
            }
            catch
            {
                MessageBox.Show("Failed to load macro.");
            }
        }
예제 #8
0
        private void loadAMacroToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string filePath = string.Empty;
            using(OpenFileDialog ofd = new OpenFileDialog())
            {
                ofd.Filter = "Macro File|*.bmr";
                if (ofd.ShowDialog() != System.Windows.Forms.DialogResult.OK)
                    return;
                filePath = ofd.FileName;
            }
            try
            {
                IMacroEvent[] loadedEvents = null;
                using (FileStream fs = new FileStream(filePath, FileMode.Open))
                using (BinaryReader br = new BinaryReader(fs))
                {
                    loadedEvents = new IMacroEvent[br.ReadInt32()];
                    int eventIndex = 0;
                    while(fs.Position != fs.Length)
                    {
                        MacroEventType mType = (MacroEventType)br.ReadByte();
                        if(mType == MacroEventType.Delay)
                        {
                            loadedEvents[eventIndex] = new MacroEvent_Delay(br.ReadInt32());
                        }

                        if(mType == MacroEventType.Keyboard)
                        {
                            eKeyboardEvent kbEvent = (eKeyboardEvent)br.ReadInt32();
                            KeyboardEvent eventData = new KeyboardEvent();
                            eventData.vKeyCode = br.ReadUInt32();
                            eventData.scanCode = br.ReadUInt32();
                            eventData.Flags = br.ReadUInt32();
                            eventData.Time = 0;
                            eventData.dwExtraInfo = WinApi.GetMessageExtraInfo();
                            loadedEvents[eventIndex] = new MacroEvent_Keyboard(kbEvent, eventData);
                        }

                        if(mType == MacroEventType.Mouse)
                        {
                            eMouseButton mButton = (eMouseButton)br.ReadInt32();
                            MouseEvent mEvent = new MouseEvent();
                            mEvent.mouseData = br.ReadUInt32();
                            mEvent.Location = new mPoint();
                            mEvent.Location.X = br.ReadInt32();
                            mEvent.Location.Y = br.ReadInt32();
                            mEvent.Flags = br.ReadUInt32();
                            loadedEvents[eventIndex] = new MacroEvent_Mouse(mEvent, mButton);
                        }
                        eventIndex++;
                    }
                }
                ClearCurrent();
                foreach (IMacroEvent lEvent in loadedEvents)
                    AddEvent(lEvent);
                MessageBox.Show("Loaded successfully");
            }
            catch
            {
                MessageBox.Show("Failed to load macro.");
            }
        }
예제 #9
0
 void Recorder_OnEvent(IMacroEvent mEvent)
 {
     AddEvent(mEvent);
 }
예제 #10
0
 public void Remove(IMacroEvent mEvent)
 {
     EventList.Remove(mEvent);
 }
예제 #11
0
 public void Remove(IMacroEvent mEvent)
 {
     EventList.Remove(mEvent);
 }
예제 #12
0
 public void Play(IMacroEvent[] events)
 {
     foreach(IMacroEvent e in events)
     {
         e.ExecuteEvent();
     }
 }