最近闲来无趣, 朋友啦我一起打传奇sf.
想写一个 @传送 坐标 捡取物品的插件.问题:
获取了 传奇窗口句柄后:
HWND hwnd = ::FindWindow(NULL,"传奇");char *s = "@传送 123 123";
for (int i=0;i<strlen(s);i++)
    PostMessage(hwnd,WM_IME_CHAR,s[i],0);这里出问题了,  中文显示 @?? 123 123
百度,google的答案 查了一天了, 也没查出个 所以然.为什么用 WM_IME_CHAR ?
WM_CHAR 过去根本没有反应, 
也不用说 获取子Edit控件,  完全找不到.
不知各位大牛, 有过类似的情况否? 拜谢了.

解决方案 »

  1.   

    传送,四个字节,获得高低位的char,应该是不同的
      

  2.   

    换成Unicode试试
    wchar_t *s = L"@传送 123 123";
    for(int i=0;i<wcslen(s);i++)
         PostMessage(hwnd,WM_IME_CHAR,s[i],0);
      

  3.   


    那个sf 客户端是 Unicode 编码, 我的程序不是,导致不能识别显示中文
    版主 VisualEleven 说的对..
    请教了另外一个人,他也这么告诉我的.
    后来使用了Unicode还是 遇到了一些莫名其妙的问题,
    原因是  Post的太快, 那边处理出错,导致显示不正常,和显示 ??
    在循环里找对地方加个 sleep 就行了
    结贴!