C# 如何读取winapi c中的图表#

C# 如何读取winapi c中的图表#,c#,winapi,charts,C#,Winapi,Charts,我用这段代码来获取图表中子窗口的句柄 [DllImport("user32")] [return: MarshalAs(UnmanagedType.Bool)] public static extern bool EnumChildWindows(IntPtr window, EnumWindowProc callback, IntPtr i); public static List<IntPtr> GetChildWindows(IntPtr par

我用这段代码来获取图表中子窗口的句柄

    [DllImport("user32")]
    [return: MarshalAs(UnmanagedType.Bool)]
    public static extern bool EnumChildWindows(IntPtr window, EnumWindowProc callback, IntPtr i);
    public static List<IntPtr> GetChildWindows(IntPtr parent)
    {
        List<IntPtr> result = new List<IntPtr>();
        GCHandle listHandle = GCHandle.Alloc(result);
        try
        {
            EnumWindowProc childProc = new EnumWindowProc(EnumWindow);
            EnumChildWindows(parent, childProc, GCHandle.ToIntPtr(listHandle));
        }
        finally
        {
            if (listHandle.IsAllocated)
                listHandle.Free();
        }
        return result;
    }
    private static bool EnumWindow(IntPtr handle, IntPtr pointer)
    {
        GCHandle gch = GCHandle.FromIntPtr(pointer);
        List<IntPtr> list = gch.Target as List<IntPtr>;
        if (list == null)
        {
            throw new InvalidCastException("GCHandle Target could not be cast as List<IntPtr>");
        }
        list.Add(handle);

        return true;
    }


    public delegate bool EnumWindowProc(IntPtr hWnd, IntPtr parameter);
    static void Main(string[] args)
    {
        foreach (Process Proces in Process.GetProcesses())
        {             

                IntPtr lastWindowHandle = GetWindow(Proces.MainWindowHandle, (uint)GetWindow_Cmd.GW_HWNDNEXT);
                GetChildWindows(Proces.MainWindowHandle);

        }
    }
我还使用了.Net Object Spy来了解句柄是什么,下面是它的图片


我只想阅读突出显示的窗口并获取烛光数据,其句柄为4982638。希望大家都理解我的问题,提前感谢。

图像识别(您正在寻找的)是一个非常广泛和不平凡的领域。。。比起捕获图像并编写代码将其转换回某种形式的表格数据,获取您正在寻找的数据可能更为直接。。。(同样,在这种简单的情况下,您可能能够手工编写识别代码,而不是依赖于库…)。这与你告诉我的完全不同。蜡烛包含打开-高-低-关闭数据。我无法通过图像识别获取数据。我想读取蜡烛的数据。不是形状。不确定你到底想找什么帮助,等等。看起来您知道您试图从中提取数据的程序通过一些API公开了您正在寻找的可读信息。在这种情况下,询问有关使用/调用该API的问题会更有效率(最好您还需要指向文档的链接)。。。如果你只是相信任何窗口中的任何图像都可以很容易地获得结构良好的数据,那你就大失所望了——窗口中的图像就是一个图像。好的。那么你能告诉我如何废弃这些数据吗?因为当我尝试上一种方法时,它给了我一个空值。我哪里出错了?你是在试图获得办公室的句柄吗文档的图表?我不认为这些是单独的窗把手。。。
    public object GetWindowText(IntPtr hWnd)
    {
        functions.StrData = "";
        object obj2 = "";
        if (hWnd.Equals(IntPtr.Zero))
        {
            return "";
        }
        functions.SendMessage(hWnd, 0x111, (IntPtr)0x81eb, IntPtr.Zero);
        functions.StrData = functions.StrData + Clipboard.GetText();
        functions.SendMessage(hWnd, 0x307, IntPtr.Zero, IntPtr.Zero);
        return obj2;
    }