当前位置:首页 > 开发教程 > Delphi教程 >

恢复Ctrl+Space无法关闭/打开输入法的问题

时间:2013-09-22 09:24 来源: 作者: 收藏

2345软件教程,为您打造全面的软件教程手册,无论是新奇小软件的操作还是专业软件的使用技巧,2345软件教程都会为您解疑释惑。

核心提示:xp有一个bug,就是在语言设置更改输入法的默认关闭/打开输入法的热键CTRL+SPACE后,无法设置恢复到原来的状态

xp有一个bug,就是在语言设置更改输入法的默认关闭/打开输入法的热键CTRL+SPACE后,无法设置恢复到原来的状态,就是说你必须在CTRL+SHIFT+SPACE和ALT+SHIFT+SPACE中选择一个新的热键来替换原来的CTRL+SPACE,这给人们带来了很多不便。用delphi可以快速解决此问题,本人在XP SP2上试验通过。。方法是先在语言设置里,去掉启用按键顺序。然后编译运行下面的程序,点btn1那个按钮就OK了。!

恢复Ctrl+Space无法关闭/打开输入法的问题

以下是代码片段:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls,registry;

type

TForm1 = class(TForm)

btn1: TButton;

    procedure btn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);

var

  reg :TRegistry;

  buffer :array[0..3] of Byte;

begin

//setLength(buffer,3);

  buffer[0]:= $02;

  buffer[1]:=$c0;

  buffer[2]:=$00;

  buffer[3]:=$00;

  reg:=TRegistry.Create;

  reg.RootKey:=HKEY_CURRENT_USER;

  if(reg.OpenKey('Control PanelInput MethodHot Keys0000010',false)) then

  begin

    reg.WriteBinaryData('Key Modifiers',buffer,4);

    showmessage('ok');

  end;

  reg.Free;

end;

end.


Delphi教程阅读排行

最新文章