hardtoking 2017-02-07 06:05 采纳率: 0%
浏览 4519
已采纳

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

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

  • 写回答

2条回答 默认 最新

  • 冷场王 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
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序