我想使用c#获取JNLP / Javaw应用程序的元素和数据文本

问题描述

我正在尝试找到一种使用c#读取JNLP / Javaw应用程序文本数据及其所有元素的方法。我得到了用Java编写的代码一个链接,但对我不起作用,我正在寻找可以与JAVA应用程序进行交互的c#代码。我很容易找到JAVA应用程序的标题/标题,但无法在应用程序内部找到文本

https://www.techtravelhub.com/how-to-automate-jnlp-based-swing-application-in-java/

我使用了以下方法,但对JAVA应用程序却无济于事:

[DllImport(“ user32.dll”,EntryPoint =“ GetwindowTextLength”,SetLastError = true)]

内部静态外部int GetwindowTextLength(IntPtr hwnd);

    private static string GetTitle(IntPtr handle)
    {
        int length = GetwindowTextLength(handle);
        StringBuilder sb = new StringBuilder(length + 1);
        GetwindowText((int)handle,sb,sb.Capacity);
        return sb.ToString();
    }
    [DllImport("User32.Dll")]
    public static extern void GetwindowText(int h,StringBuilder s,int nMaxCount);
    [DllImport("user32.dll",EntryPoint = "GetwindowText",CharSet = CharSet.Auto)]
    static extern IntPtr GetwindowCaption(IntPtr hwnd,StringBuilder lpString,int maxCount);
    [DllImport("user32.dll",EntryPoint = "GetClassNameA")]
    public static extern int GetClassName(IntPtr hwnd,StringBuilder lpClassName,EntryPoint = "SendMessage")]
    private static extern IntPtr SendMessageGetTextW(IntPtr hWnd,uint msg,UIntPtr wParam,StringBuilder lParam);

    [DllImport("User32.dll",EntryPoint = "SendMessage")]
    private extern static int SendMessageGetTextLength(IntPtr hWnd,int msg,IntPtr wParam,IntPtr lParam);
    public static string GetwindowText(IntPtr hwnd)
    {
        int len = SendMessageGetTextLength(hwnd,14,IntPtr.Zero,IntPtr.Zero) + 1;
        StringBuilder sb = new StringBuilder(len);
        SendMessageGetTextW(hwnd,13,new UIntPtr((uint)len),sb);
        return sb.ToString();
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)