在c#应用程序中使用user32.dll FindWindow时的utf字符
发布时间:2020-12-15 08:41:27 所属栏目:百科 来源:网络整理
导读:LS, 我在c#应用程序中使用FindWindow方法从Web浏览器获取窗口句柄 [DllImport("user32.dll")]public static extern int FindWindow(string lpClassName,string lpWindowName ); 当窗口标题不包含像这里的utf字符时,它运行良好: string caption1 = "pinvoke.
LS,
我在c#应用程序中使用FindWindow方法从Web浏览器获取窗口句柄 [DllImport("user32.dll")] public static extern int FindWindow(string lpClassName,string lpWindowName ); 当窗口标题不包含像这里的utf字符时,它运行良好: string caption1 = "pinvoke.net: findwindow (user32) - Google Chrome"; int hwnd = FindWindow(null,caption1); 但是当窗口标题中出现utf chars时它会失败: string caption2 = "S?ownik j?zyka polskiego - Google Chrome"; int hwnd2 = FindWindow(null,caption2); 例如hwnd == 0 您能不能给我任何建议如何在c#应用程序中处理包含utf-8字符的浏览器窗口. PS 解决方法
我自己没试过,但你应该能够这样做:
[DllImport("user32.dll",CharSet = CharSet.Unicode)] public static extern int FindWindow(string lpClassName,string lpWindowName ); 根据MSDN在DllImportAttribute.CharSet Field上的文章,默认假设将是CharSet.Ansi,这将导致您描述的行为. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |