切换输入法的小程序,应用在触摸屏系统中,有诸多问题想请教,请高手们进来看看

hero24ture 2007-07-13 08:56:50
我的触摸屏系统是ASP页面,下载了一个手写输入软件,由于200台触摸屏本身的问题,手写的功能几乎用不起来,我就用JS写了一个软键盘,所以现在需要能切换输入法的小程序,现在截面和切换的功能都出来了,就是不知道怎么实现切换好的输入法怎么应用在ASP的页面上,据说要调用API,我刚学DELPHI一天,嘿嘿,不会,望高手指点怎么实现,下面是我下载的代码,请多多指教:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,imm, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
ComboBox1: TComboBox;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
function funOpenIME(PImeName:string):Boolean;
procedure pcdCloseIME;
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}


{-----------------------------------------------------------------------------
Procedure: TForm1.Button1Click
Author: puha
Date: 2005-4-30
Arguments: Sender: TObject
Result: None
功能: 取得输入法
-----------------------------------------------------------------------------}
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
ComboBox1.Items.Clear;
for i:=0 to Screen.Imes.Count-1 do
begin
ComboBox1.Items.Add(Screen.Imes[i]);
end;
ComboBox1.ItemIndex:=0;
end;

{-----------------------------------------------------------------------------
Procedure: TForm1.Button2Click
Author: puha
Date: 2005-4-30
Arguments: Sender: TObject
Result: None
功能:
-----------------------------------------------------------------------------}
procedure TForm1.Button2Click(Sender: TObject);
begin
funOpenIME(ComboBox1.Text);
end;

{-----------------------------------------------------------------------------
Procedure: TForm1.Button3Click
Author: puha
Date: 2005-4-30
Arguments: Sender: TObject
Result: None
功能:
-----------------------------------------------------------------------------}
procedure TForm1.Button3Click(Sender: TObject);
begin
pcdCloseIME;
end;

{-----------------------------------------------------------------------------
Procedure: TForm1.funOpenIME
Author: puha
Date: 2005-4-30
Arguments: PImeName: string
Result: Boolean
功能: 打开指定名称的输入法
-----------------------------------------------------------------------------}
function TForm1.funOpenIME(PImeName: string): Boolean;
var
MyHKL:HKL;
i:integer;
begin
Result:=False;
if Trim(PImeName)='' then Exit;
if Screen.Imes.Count<=0 then Exit;
i:=Screen.Imes.IndexOf(PImeName);
if i<0 then
begin
ShowMessage('指定的"'+PImeName+'"输入法不存在');
Exit;
end;
MyHKL:=HKL(Screen.Imes.Objects[i]);
ActivateKeyboardLayout(MyHKL,KLF_ACTIVATE);
Result:=True;
end;
{-----------------------------------------------------------------------------
Procedure: TForm1.pcdCloseIME
Author: puha
Date: 2005-4-30
Arguments: None
Result: None
功能: //判断是否在中文状态,若是则关闭它
-----------------------------------------------------------------------------}
procedure TForm1.pcdCloseIME;
var
myhkl:hkl;
begin
myhkl:=GetKeyBoardLayOut(0);
if ImmIsIME(myhkl) then
immsimulateHotkey(handle,IME_CHotKey_IME_NonIME_Toggle);
end;



end.

...全文
90 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
mygodsos 2008-06-20
  • 打赏
  • 举报
回复
给你的方法,自己实现:
  API函数:BOOL ImmSimulateHotKey
  (HWND hWnd,DWORD dwHotKeyID);//模拟热键
  其中Hwnd为程序窗口的句柄,dwHotHKeyID
  为模拟的热键,若成功则返回True
  HKL GetKeyboardLayout(DWORD dwLayout);
  //获得当前键盘状态
  BOOL ImmIsIME(HKL hKL);
  //判断当前是否处于中文输入状态,若是则返回True
  自定义函数:
  打开相应输入法:OpenIme(imename:string),
  例OpenIme(’全拼输入法’);
  关闭中文输入法:CloseIme;
  使用时uses中加上imm

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧