hardtoking
hardtoking
采纳率31.4%
2017-02-07 06:05 阅读 4.1k

用C#打开默认浏览器并打开指定网页 并对网页进行一些操作

50

想做一个工具,可以打开默认浏览器,并打开指定的网页
1,网页是多页的, 获取总页数 网页上面没有参数,只能读取源码中的指定元素才能获取到
2,可以点击网页中的下一页按钮
3,可以通过模拟键盘的Ctrl+A全选网页
4,可以通过模拟键盘的Ctrl+C复制

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    qq_29516283 冷场王 2017-02-07 09:11

    默认浏览器打开页面 System.Diagnostics.Process.Start("http://pan.baidu.com/s/1sl1uCjj");
    1 打开多个页面不能弄个计数器吗?读取元素的给你个例子(写在函数里),总体思路就是获取html代码,然后正则匹配:
    var wc = new WebClient();
    var html = wc.DownloadString("http://zhidao.baidu.com/question/499087825.html");
    //Console.Write(html);
    var regex1 = new Regex("(?.*?)");
    var regex2 = new Regex(@"\s(?.*?)\s");
    if (regex1.IsMatch(html))
    {
    var title = regex1.Match(html).Groups["title"].Value;
    var time = regex2.Match(html).Groups["time"].Value;
    time = Regex.Replace(time, @"[^\d]*", "");
    time = time.Substring(0, 4) + "/" + time.Substring(4, 2) + "/" + time.Substring(6, 2) + " " + time.Substring(8, 2) + ":" + time.Substring(10, 2) + ":" + time.Substring(12, 2);
    // MessageBox.Show(title+time);
    DateTime dt = DateTime.Parse(time);
    Console.WriteLine(title + time);
    }
    2,3,4 可以模拟鼠标键盘操作
    鼠标:
    [System.Runtime.InteropServices.DllImport("user32")]
    public extern static void mouse_event(int dwFlags, int dx, int dy, int dwData, IntPtr dwExtraInfo);
    [System.Runtime.InteropServices.DllImport("user32")]
    static extern bool SetCursorPos(int X, int Y);

                 //移动鼠标 
        const int MOUSEEVENTF_MOVE = 0x0001;
        //模拟鼠标左键按下 
        const int MOUSEEVENTF_LEFTDOWN = 0x0002;
        //模拟鼠标左键抬起 
        const int MOUSEEVENTF_LEFTUP = 0x0004;
    
        const int MOUSEEVENTF_ABSOLUTE = 0x8000;
    
                //鼠标点击位置
        private void mouse_click(Point p1)
        {
            SetCursorPos(p1.X, p1.Y);
            mouse_event((int)(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_ABSOLUTE), p1.X, p1.Y, 0, IntPtr.Zero);
            mouse_event((int)(MOUSEEVENTF_LEFTUP | MOUSEEVENTF_ABSOLUTE), p1.X, p1.Y, 0, IntPtr.Zero);
        }
    
    
                键盘:
                SendKeys.Send(SendKeys.Send("^{A}"););//ctrl+A
                SendKeys.Send(SendKeys.Send("^{C}"););//ctrl+C
    
    点赞 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2017-02-07 09:11

    用webbrowser控件就好了。直接读取html源代码并且操作,我猜测你用不到剪贴板

    点赞 评论 复制链接分享

相关推荐