向命令行窗口发送中文的有关问题,出现乱码

向命令行窗口发送中文的问题,出现乱码!

procedure SendMessageToCMD(hwd:HWND; str:string);
var
 i:integer;
begin
    i:=1;
   while i<=length(str)do
     begin
        if IsDBCSLeadByte(byte(str[i])) then
         begin
          inc(i);
            SendMessage(hwd, WM_IME_CHAR, MakeWord(byte(str[i]), byte(str[i-1])), 0);
         end else
         begin
          sendmessage(hwd,WM_IME_CHAR,word(byte(str[i])),0) ;
          inc(i);
         end;
     end;
end;


我用上面的方法去想命令行窗口发送字符串,中文就是乱码,有没有办法解决?
------解决思路----------------------
SendMessage(hwd, WM_IME_CHAR, MakeWord(byte(str[i]), byte(str[i-1])), 0);
这句下边加一句inc(i)