鍵盤的預設輸入法 |
尚未結案
|
pricejit2
一般會員 發表:53 回覆:18 積分:14 註冊:2005-01-28 發送簡訊給我 |
|
Vicen
高階會員 發表:13 回覆:145 積分:151 註冊:2005-03-14 發送簡訊給我 |
也记不清是什么时候什么地方下载收藏的,拿来借花献佛了~
< class="code">
//注意要引用 IMM 单元 // 取得window所有的输入法
function GetIMEList(slIMEList: TStringList): Integer;
Const
nHKL_LIST = 20;
Var
iHandleCount: integer;
pList: array[1..nHKL_LIST] of HKL;
szImeFileName: array[0..MAX_PATH] of char;
sImeFileName: string;
i: integer;
begin
iHandleCount:= GetKeyboardLayoutList(nHKL_LIST, pList);
for i:= 1 to iHandleCount do
begin
ImmGetDescription(pList[i], szImeFileName, MAX_PATH);
sImeFileName := trim(AnsiUpperCase(StrPas(szImeFileName)));
slIMEList.Add(sImeFileName);
end;
Result := iHandleCount;
end; //中英文切换
function SetKey2Ime(aObj: TWinControl): boolean;
begin
ImmSimulateHotKey(aObj.Handle, IME_THOTKEY_IME_NONIME_TOGGLE);
result:= True;
end; // 切换到指定的输入法
function SetActiveIme(sWanted: String): Boolean;
Const
nHKL_LIST = 20;
Var
iHandleCount: integer;
pList: array[1..nHKL_LIST] of HKL;
szImeFileName: array[0..MAX_PATH] of Char;
sImeFileName: String;
bInstalled: boolean;
i: integer;
begin
Result := False;
sWanted := AnsiUpperCase(sWanted);
bInstalled := False;
iHandleCount:= GetKeyboardLayoutList(nHKL_LIST, pList);
for i:= 1 to iHandleCount do
begin
ImmGetDescription(pList[i], szImeFileName, MAX_PATH);
sImeFileName := AnsiUpperCase(StrPas(szImeFileName));
if Pos(sWanted,sImeFileName)>0 then
begin
bInstalled:= True;
Break;
end;
end;
if bInstalled then
begin
ActivateKeyboardLayout(pList[i], 0);
Result := True;
end;
end; 使用方法:
//获取所有输入法列表
Var
slIMEList : TStringList;
Begin
SlIMEList := TStringList.Create;
TRY
GetIMEList(SlIMEList);
Memo1.Text := SlIMEList.Text;
FINALLY
SlIMEList.Free;
END;
End; //切换中英文
SetKey2Ime(Memo1); //切换到指定输入法
SetActiveIme('拼音加加');
|
rachex2000
一般會員 發表:21 回覆:32 積分:20 註冊:2003-04-28 發送簡訊給我 |
|
eaglewolf
資深會員 發表:4 回覆:268 積分:429 註冊:2006-07-06 發送簡訊給我 |
應該是ImmGetDes_c_r_i_p_tion這個函數才對(請把底線拿掉)
因為s_c_r_i_p_t這個字會被系統擋掉
------
先查HELP 再查GOOGLE 最後才發問 沒人有義務替你解答問題 在標題或文章中標明很急 並不會增加網友回答速度 Developing Tool: 1.Delphi 6 2.Visual Studio 2005 3.Visual Studio 2008 DBMS: MS-SQL
編輯記錄
eaglewolf 重新編輯於 2007-06-29 11:21:31, 註解 無‧
|
Ktop_Robot
站務副站長 發表:0 回覆:3511 積分:0 註冊:2007-04-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |