Эти признаки указывают, что вы вызываете ANSI-версию GetWindowText
, но интерпретируете возвращаемое значение как Unicode.
Решение заключается в том, чтобы вместо этого вызывать Unicode-версию GetWindowText
. Сделайте это, указав Charset=Charset.Unicode
в вашем DllImport
.
[DllImport("user32.dll", CharSet=CharSet.Unicode, SetLastError=true)]
static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString,
int nMaxCount);