用controlgettext演示:
[DllImport("AutoItX3.dll", SetLastError = true, CharSet =CharSet.Auto)]
private static extern voidAU3_ControlGetText([MarshalAs(UnmanagedType.LPStr)] stringTitle
, [MarshalAs(UnmanagedType.LPStr)] string Text,[MarshalAs(UnmanagedType.LPStr)] string Control
, byte[] Result, int BufSize);
public static string ControlGetText(string vsTitle, stringvsText, string vsControl)
{
byte[] RetText=new byte[50];
AU3_ControlGetText(vsTitle,vsText,vsControl,RetText,RetText.Length);
returnEncoding.GetEncoding("GB2312").GetString(RetText).TrimEnd('\0');
}
这样使用controlgettext得到的文本就不是乱码了
[DllImport("AutoItX3.dll", SetLastError = true, CharSet =CharSet.Auto)]
private static extern voidAU3_ControlGetText([MarshalAs(UnmanagedType.LPStr)] stringTitle
, [MarshalAs(UnmanagedType.LPStr)] string Text,[MarshalAs(UnmanagedType.LPStr)] string Control
, byte[] Result, int BufSize);
public static string ControlGetText(string vsTitle, stringvsText, string vsControl)
{
byte[] RetText=new byte[50];
AU3_ControlGetText(vsTitle,vsText,vsControl,RetText,RetText.Length);
returnEncoding.GetEncoding("GB2312").GetString(RetText).TrimEnd('\0');
}
这样使用controlgettext得到的文本就不是乱码了