基本信息
源码名称:RPA自动化软件源码,可录制操作脚本(财务处理系统)
源码大小:1.73M
文件格式:.zip
开发语言:C#
更新时间:2018-07-01
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 5 元 
   源码介绍
可录制操作脚本,并实现 重新操作。流程录制以及自动化模拟操作。




using System;
using System.Drawing;
using System.IO;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using ZMC.Macro;
using ZMC.Forms.Setting;

namespace ZMC
{
    public partial class RPA : Form
    {
        private Point mouseXY;
        [DllImport("User32")]
        public extern static bool GetCursorPos(ref Point lpPoint);
        [DllImport("user32.dll")]
        public static extern int GetAsyncKeyState(int vKey);
        [DllImport("user32.dll")]
        public static extern UInt32 RegisterHotKey(IntPtr hWnd, UInt32 id, UInt32 fsModifiers, UInt32 vk);
        [DllImport("user32.dll")]
        public static extern UInt32 UnregisterHotKey(IntPtr hWnd, UInt32 id);

        //private WebHelper wh;
        public RPA()
        {
            InitializeComponent();
        }

        //热键处理
        protected override void WndProc(ref Message m)
        {
            if (_recorder.IsRunning && (GetAsyncKeyState(0x00A2) & 0x8000) == 0x8000 && (GetAsyncKeyState(0x0001) & 0x8000) == 0x8000)
            {
                mouseXY = new Point();
                GetCursorPos(ref mouseXY);
                _recorder.mouseXY = mouseXY;
                controlMenu.Show(mouseXY);
                return;
            }
            int WM_F7 = (int)Keys.F7;
            switch (m.Msg)
            {
                case 0x312:
                    if (m.WParam.ToInt32() == WM_F7)
                    {
                        _player.IsPlaying = !_player.IsPlaying;
                    }
                    break;
            }
            base.WndProc(ref m);
        }
        private void RPA_Load(object sender, EventArgs e)
        {
            RegisterHotKey(this.Handle, (int)Keys.F7, 0, (int)Keys.F7);//暂停/继续
        }
        private void RPA_FormClosing(object sender, FormClosingEventArgs e)
        {
            UnregisterHotKey(this.Handle, (int)Keys.F7);
        }
        private const string ConfigurationFilePath = "config.json";
        private readonly MacroRecorder _recorder = new MacroRecorder();
        private readonly MacroPlayer _player = new MacroPlayer();

        private void stopControlButton_Click(object sender, EventArgs e)
        {
            //停止录制
            _recorder.StopRecording();
            this.recordControlButton.Visible = true;
            this.stopControlButton.Visible = false;
            this.buttonState();
            //wh.ClearListen();
            //wh = null;
        }

        private void playControlButton_Click(object sender, EventArgs e)
        {
            //检查是否有宏记录供播放
            if (_recorder.CurrentMacro == null || _recorder.CurrentMacro.Events.Length == 0)
            {
                MessageBox.Show("error_save_nomacro_message","error_save_nomacro_title", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            //读取和播放宏
            _player.LoadMacro(_recorder.CurrentMacro);
            _player.PlayMacroAsync();
            _player.currentHandle = this.Handle;
            this.pauseControlButton.Visible = true;
            this.playControlButton.Visible = false;
            this.buttonState();
        }

        private void clearControlButton_Click(object sender, EventArgs e)
        {
            //确认是否清理宏.
            if (_recorder.CurrentMacro != null && _recorder.CurrentMacro.Events.Length > 0)
            {
                var result = MessageBox.Show("confirm_clear_message",
                    "confirm_clear_title", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
                if (result == DialogResult.Yes)
                    _recorder.Clear();
            }
        }

        private void openControlButton_Click(object sender, EventArgs e)
        {
            //确认是否清理宏.
            if (_recorder.CurrentMacro != null && _recorder.CurrentMacro.Events.Length > 0)
            {
                var result = MessageBox.Show("confirm_open_message","confirm_clear_title", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
                if (result == DialogResult.Yes)
                {
                    _recorder.Clear();
                }
            }

            //浏览打开宏文件
            var dialog = new OpenFileDialog
            {
            };

            //读取宏文件到记录
            if (dialog.ShowDialog() == DialogResult.OK)
            {
                var loadedMacro = new Macro.Macro();
                loadedMacro.Load(dialog.FileName);
                _recorder.LoadMacro(loadedMacro);
            }
        }

        private void saveControlButton_Click(object sender, EventArgs e)
        {
            //检查是否有宏文件可以保存
            if (_recorder.CurrentMacro == null || _recorder.CurrentMacro.Events.Length == 0)
            {
                MessageBox.Show("error_save_nomacro_message",
                    "error_save_nomacro_title", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            //将文件保存到指定目录
            var dialog = new SaveFileDialog
            {
            };

            //保存文件
            if (dialog.ShowDialog() == DialogResult.OK) { 
                _recorder.CurrentMacro.Save(dialog.FileName);
            }
        }

        private void loopControlButton_Click(object sender, EventArgs e)
        {
            _player.Pause();
            //设置重复播放次数
            var dialog = new RepetitionsDialog { Repetitions = _player.Repetitions };
            if (dialog.ShowDialog() == DialogResult.OK)
                _player.Repetitions = dialog.Repetitions;
        }

        private void recordControlButton_Click(object sender, EventArgs e)
        {
            //确认是否已有的宏是否保存
            if (_recorder.CurrentMacro != null && _recorder.CurrentMacro.Events.Length > 0)
            {
                var result = MessageBox.Show("confirm_append_message","confirm_append_title", MessageBoxButtons.YesNoCancel,
                    MessageBoxIcon.Warning);
                if (result == DialogResult.No)
                    _recorder.Clear();
                else if (result == DialogResult.Cancel)
                    return;
            }
            //开始录制
            _recorder.StartRecording();
            _recorder.currentHandle = this.Handle;
            this.recordControlButton.Visible = false;
            this.stopControlButton.Visible = true;
            this.buttonState();
        }

        private void pauseControlButton_Click(object sender, EventArgs e)
        {
            _player.Pause();
            this.pauseControlButton.Visible = false;
            this.playControlButton.Visible = true;
            this.buttonState();
        }

        private void buttonState()
        {
            if (this.stopControlButton.Visible == true || this.pauseControlButton.Visible == true)
            {
                this.recordControlButton.Enabled = false;
                this.loopControlButton.Enabled = false;
                this.openControlButton.Enabled = false;
                this.saveControlButton.Enabled = false;
                this.playControlButton.Enabled = false;
            }
            else
            {
                this.recordControlButton.Enabled = true;
                this.playControlButton.Enabled = true;
                this.loopControlButton.Enabled = true;
                this.openControlButton.Enabled = true;
                this.saveControlButton.Enabled = true;
            }
        }

        private void FileDownload(string excel, string vba, string template)
        {
            _recorder.ExcelConver(excel, vba, template);
        }
        private void TSM_OpenIE_Click(object sender, EventArgs e)
        {
            _recorder.OpenIE();
        }

        private void TSM_OpenSoftWare_Click(object sender, EventArgs e)
        {
            _recorder.OpenApplication("SOFTWARE");
        }

        private void TSM_MakeRules_Click(object sender, EventArgs e)
        {
            _recorder.MakeTimeRule();
        }


        private void TSM_ClearAD_Click(object sender, EventArgs e)
        {
            _recorder.ClearAD();
        }

        private void TSM_CloseMenu_Click(object sender, EventArgs e)
        {
            _recorder.MenuClose();
        }

        private void TSM_copy_Click(object sender, EventArgs e)
        {
            //_recorder.Copy();
        }

        private void TSM_Test_Click(object sender, EventArgs e)
        {

        }

        private void settingControlButton_Click(object sender, EventArgs e)
        {
            Setting set = new Setting();
            set.ShowDialog();
            if (set.DialogResult == DialogResult.OK)
            {

            }
            set.Dispose();
        }

        private void TSM_BrowerWrite_Click(object sender, EventArgs e)
        {
            _recorder.BrowerReadWrite();
        }

        private void TSM_ClearAd_Click_1(object sender, EventArgs e)
        {
            _recorder.BrowerClearAd();
        }

        private void TSM_BrowerClick_Click(object sender, EventArgs e)
        {
            _recorder.BrowerClick();
        }

        private void TMS_Javascript_Click(object sender, EventArgs e)
        {
            _recorder.ExecJavascript();
        }

        private void TSM_SaveVar_Click(object sender, EventArgs e)
        {
            _recorder.SaveGlobalVar();
        }

        private void TSM_ReadVar_Click(object sender, EventArgs e)
        {
            _recorder.ReadGlobalVar(0);
        }
    }
}