开发环境为Delphi6.0企业版。1)在Windows XP 专业版SP2环境下,先按Button1下载网页后,再按Button2无法
启动中文输入法键盘布局3759015940。但如果不按Button1直接按Button2可以启动
中文输入法键盘布局3759015940。2)同样的代码在在Windows XP 家庭版SP1及Windows2000下则没有这个问题。哪位高手先进能告诉我问题出在哪,如何解决?代码如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
  WebBrowser1.Navigate('http://www.csdn.net/');
end;procedure TForm1.Button2Click(Sender: TObject);
var
hKB:HKL;
begin
  ActivateKeyboardLayout(3759015940,KLF_ACTIVATE);
  hKB:=GetKeyboardLayout(0);
  showmessage(inttostr(hKB));
end;

解决方案 »

  1.   

    BANG  DING  
      

  2.   

    开新线程且不用synchronize虽可解决问题,但希望在主线程就能启动中文输入法。
      

  3.   

    在XP SP2环境下,在Activatekeyboardlayout所在行设断点,用F8运行该行后接着按F9运行就可正常启动中文输入法。但如按F7该行就无法正常启动,和不设断点时一样。
      

  4.   

    Activatekeyboardlayout未能正常启动时返回值为134481924。换算为16进制为x08040804。而0804为简体中文代码。正常启动应返回的3759015940换算为16进制为E0E00804。