记录一下光标输出时的一个问题:
在一台年代久远的win7 32位计算机上使用SendKeys.send()方法输出时,出现了数据重复的现象;重复的位置是随机的,如“12356789”输出到文本框内变成了“1123456789”或“1234556789”;
后来用SendMessage输出解决了这个问题:
1、新建SendMsg类
public class SendMsg
{
[DllImport("user32.dll")]
public static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
[DllImport("user32.dll")]
static extern uint GetWindowThreadProcessId(IntPtr hWnd, IntPtr ProcessId);
[DllImport("user32.dll")]
static extern bool GetGUIThreadInfo(uint idThread, ref GUITHREADINFO lpgui);
[StructLayout(LayoutKind.Sequential)]
public struct GUITHREADINFO
{
public int cbSize;
public int flags;
public IntPtr hwndActive;
public IntPtr hwndFocus;
public

本文记录了一台旧版Win7 32位计算机上使用SendKeys.send()方法导致数据输出重复的问题。在遇到此类问题时,通过创建SendMsg类并使用SendMessage的SendText()方法成功解决了该问题,避免了输入法和低版本系统的影响。
最低0.47元/天 解锁文章
3265





