如何解决我想使用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 举报,一经查实,本站将立刻删除。