本帖最后由 linamong 于 2010-06-13 04:47:59 编辑

解决方案 »

  1.   

    将string改为StringBuilder试试,我循环取20个edit都没事啊
      

  2.   

    PostMessage 如果照着定义,结果肯定是一样的.需要怎么做呢?
    StringBuilder 初步测试没问题,等我丢来循环里看看没问回来结贴.
      

  3.   

    string一般是传出字符串用的
    传入的需要用stringbuilder
      

  4.   

                        int hEdit = FindWindowEx(p.MainWindowHandle, 0, "Edit", "");
                        string w = " ";
                        IntPtr ptr = Marshal.StringToHGlobalAnsi(w);
                        if (SendMessage(hEdit, WM_GETTEXT, 100, ptr))                        Console.WriteLine(Marshal.PtrToStringAnsi(ptr));
      

  5.   

    哦  可以正常获取,是我弄错了.
    不过
     IntPtr ptr = Marshal.StringToHGlobalAuto(w);
    尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
    重复获取的时候有以上错误.
      

  6.   

    追问一下,SendMessage能否修改一个Edit的 MaxLength
      

  7.   

    可以SendMessage(EditHandler,0xc5, maxLength, 0);
      

  8.   


    Edit的 MaxLength 解决办法EM_SETLIMITTEXT   0x00C5