Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从windows窗体应用程序以编程方式在运行的IE实例上单击图像_C#_Winapi - Fatal编程技术网

C# 如何从windows窗体应用程序以编程方式在运行的IE实例上单击图像

C# 如何从windows窗体应用程序以编程方式在运行的IE实例上单击图像,c#,winapi,C#,Winapi,我想创建一个执行以下操作的windows应用程序。 单击按钮时 查找IE的一个正在运行的实例(我能够使用findwindowAPI(user32.dll)获得该实例的句柄) 将消息发送到windows操作系统,用鼠标单击IE中的图像。我已经知道页面上有图像。-这就是我需要帮助的地方!!谢谢 当我有一个句柄时,如何从windows应用程序中获取html格式的图像对象? 我尝试了user32.dll(鼠标事件(长dwFlags、长dx、长dy、长cButtons、长dwExtraInfo)),但在页

我想创建一个执行以下操作的windows应用程序。 单击按钮时

  • 查找IE的一个正在运行的实例(我能够使用findwindowAPI(user32.dll)获得该实例的句柄)
  • 将消息发送到windows操作系统,用鼠标单击IE中的图像。我已经知道页面上有图像。-这就是我需要帮助的地方!!谢谢
  • 当我有一个句柄时,如何从windows应用程序中获取html格式的图像对象?
    我尝试了user32.dll(鼠标事件(长dwFlags、长dx、长dy、长cButtons、长dwExtraInfo)),但在页面中找不到正确的x和y图像。

    请检查下面的代码;它应该使用SHDocVw.ShellWindows集合遍历所有打开的IE窗口;对于每个窗口,它迭代与该窗口关联的mshtml.HTMLDocument对象的图像集合。对于每个图像,它将其href转储到控制台中,并尝试使用mshtml.HTMLImg click方法单击它。您还可以检查对象位置的HTMLImg Definition,以防您希望通过鼠标事件过程发送鼠标单击。我还向图像对象添加了OnClick事件处理程序;每次在代码中或使用鼠标单击图像时,都应该执行该命令

    private void button2_Click(object sender, EventArgs e)
    {
        SHDocVw.ShellWindows shellWindows = new SHDocVw.ShellWindows();
        foreach (SHDocVw.WebBrowser ie in shellWindows)
        {
            mshtml.HTMLDocument doc = ie.Document as mshtml.HTMLDocument;
            if (doc != null)
            {
                foreach (mshtml.HTMLImg imgElement in doc.images)
                {
                    ((HTMLImgEvents_Event)imgElement).onclick += new mshtml. HTMLImgEvents_onclickEventHandler(Form1_onclick); 
                    Console.WriteLine(imgElement.href);
                    imgElement.click();
                }
            }
        }
    }
    
    private bool Form1_onclick()
    {
        Console.WriteLine("click !!");            
        return true;
    }
    
    希望这有帮助,谢谢