DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: forget66
今日帖子: 64
在线用户: 14
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 cdjhcp (我) ▲▲▲▲△ -
普通会员
2018/9/21 9:47:20
标题:
在Win10操作系统,delphi 2007开发的系统,无法看到输入法, 浏览:3141
加入我的收藏
楼主: 在Win10操作系统,delphi 2007开发的系统,无法看到输入法,如何处理?
----------------------------------------------
-
作者:
男 hujiacheng ( 旺财) ★☆☆☆☆ -
普通会员
2018/9/21 9:49:20
1楼: QQ?狗狗?紫光?XX?ALL? win10版本很多哦。你用啥?
----------------------------------------------
免费的FTPhttps://download-installer.cdn.mozilla.net/pub/firefox/releases/43.0/win64/zh-CN/https://cc.embarcadero.com/Author/575019>http://delphi-z.ruhttps://download-installer.cdn.mozilla.net/pub/firefox/releases/43.0/win64/zh-CN/https://cc.embarcadero.com/Author/575019>http://delphi.icm.edu.pl/ftp/https://download-installer.cdn.mozilla.net/pub/firefox/releases/43.0/win64/zh-CN/https://cc.embarcadero.com/Author/575019>http://delphi-z.ruhttps://download-installer.cdn.mozilla.net/pub/firefox/releases/43.0/win64/zh-CN/https://cc.embarcadero.com/Author/575019
作者:
男 cdjhcp (我) ▲▲▲▲△ -
普通会员
2018/9/21 10:35:52
2楼: win10企业版64位,
输入法,搜狗、智能拼音、微软拼音。
----------------------------------------------
-
作者:
男 delphixxx (delphixxx) ★☆☆☆☆ -
盒子活跃会员
2018/9/25 8:47:05
3楼: win10的输入法是全局的,用2007原来的方法上取不到了的。
----------------------------------------------
After three days without programming, life becomes meaningless.
作者:
男 cdjhcp (我) ▲▲▲▲△ -
普通会员
2018/9/25 9:49:05
4楼: 怎么处理?
----------------------------------------------
-
作者:
男 cdjhcp (我) ▲▲▲▲△ -
普通会员
2018/9/26 10:23:32
5楼: 怎么处理?

解决后请留联系方式,红包酬谢。
----------------------------------------------
-
作者:
男 zhangl (二黑) ★☆☆☆☆ -
盒子活跃会员
2018/9/27 15:11:43
6楼: function GetIMEList(slRet: TStrings; OnlyEnabled: Boolean = True): Boolean;
var
  pProfiles: PTfInputProcessorProfiles;
  IProfiles: ITfInputProcessorProfiles;
  LangId: Word;
  EnumProfiles: IEnumTfLanguageProfiles;
  LangProfile: TF_LANGUAGEPROFILE;
  FetchedItems: Cardinal;
  strProfile: WideString;
  nEnabled: Integer;
  hRet: HRESULT;
begin
  Result:= False;

  if not IsMSCTFAvailable() then
    Exit;

  hRet:= TF_CreateInputProcessorProfiles(@pProfiles);
  if not Succeeded(hRet) then
    Exit;
  
  IProfiles := ITfInputProcessorProfiles(pProfiles);
  LangId:= 0;
  IProfiles.GetCurrentLanguage(LangId);
  if LangId = Word(-1) then
    Exit;

  EnumProfiles:= nil;
  IProfiles.EnumLanguageProfiles(LangId, EnumProfiles);
  if EnumProfiles = nil then
    Exit;

  slRet.Clear;
  EnumProfiles.Next(1, LangProfile, FetchedItems);
  while FetchedItems > 0 do
  begin
    strProfile := '';
    hRet:= IProfiles.GetLanguageProfileDescription(LangProfile.clsid,
        LangProfile.langid, LangProfile.guidProfile, strProfile);
    if Succeeded(hRet) then
    begin
      if OnlyEnabled then
      begin
        nEnabled:= 0;
        hRet:= IProfiles.IsEnabledLanguageProfile(LangProfile.clsid,
          LangProfile.langid, LangProfile.guidProfile, nEnabled);

        if Succeeded(hRet) and (nEnabled = 1) then
          slRet.Add(strProfile);
      end else
      begin
        slRet.Add(strProfile);
      end;
    end;
    EnumProfiles.Next(1, langProfile, FetchedItems);
  end;
end;
此帖子包含附件:zhangl_2018927151143.zip 大小:7.5K
----------------------------------------------
报到
作者:
男 zhangl (二黑) ★☆☆☆☆ -
盒子活跃会员
2018/9/27 15:12:01
7楼: 试试这段代码
----------------------------------------------
报到
作者:
男 keymark (嬲) ▲▲▲△△ -
普通会员
2018/9/27 18:47:08
8楼: 楼上这个调用
https://docs.microsoft.com/zh-cn/windows/desktop/api/msctf/nn-msctf-itfinputprocessorprofiles#requirements

有个办法解决
调用
https://docs.microsoft.com/zh-cn/windows/desktop/api/msctf/nn-msctf-itfcandidatelistuielement
CandidateList 拿候选表  然后用ide插件画 ide(程序)上去..
但是有个问题
https://docs.microsoft.com/zh-cn/windows/desktop/api/ctffunc/
这单元好像新版没有??可能我搜错了.

//---
https://stackoverflow.com/questions/12243354/how-to-create-a-type-library-of-system32-dll
https://stackoverflow.com/questions/11457811/delphi-unit-for-msctf-h-header-file-from-platform-sdk

ImmGetCandidateList 这个方法拿不到数据.
win7 企业

没代码
http://www.cnblogs.com/drunkard87/articles/3476920.html
看不太明白 调用过程.
此帖子包含附件:
PNG 图像
大小:12.9K
----------------------------------------------
[alias]  co = clone --recurse-submodules  up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/>http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
作者:
男 cdjhcp (我) ▲▲▲▲△ -
普通会员
2018/10/8 16:44:56
9楼: @zhangl代码测试win10可以显示输入法,感谢,请留下微信号或者QQ,红包感谢!
不过还有问题,Edit1.ImeName := "输入法",这个写法在win10用不了,怎么解决?
----------------------------------------------
-
作者:
男 zhangl (二黑) ★☆☆☆☆ -
盒子活跃会员
2018/10/15 15:18:46
10楼: win10设置输入法这个问题目前还没找到办法
----------------------------------------------
报到
作者:
男 cdjhcp (我) ▲▲▲▲△ -
普通会员
2018/10/18 15:43:09
11楼: @zhangl,没办法解决?
请留联系方式,谢谢。
----------------------------------------------
-
作者:
男 hsj (hsj) ★☆☆☆☆ -
盒子活跃会员
2018/10/19 9:08:06
12楼: function SetIMEName(slRet: String): Boolean;
var
  pProfiles: PTfInputProcessorProfiles;
  IProfiles: ITfInputProcessorProfiles;
  LangId: Word;
  EnumProfiles: IEnumTfLanguageProfiles;
  LangProfile: TF_LANGUAGEPROFILE;
  FetchedItems: Cardinal;
  strProfile: WideString;
  nEnabled: Integer;
  hRet: HRESULT;
begin
  Result:= False;

  if not IsMSCTFAvailable() then
    Exit;

  hRet:= TF_CreateInputProcessorProfiles(@pProfiles);
  if not Succeeded(hRet) then
    Exit;
  
  IProfiles := ITfInputProcessorProfiles(pProfiles);
  LangId:= 0;
  IProfiles.GetCurrentLanguage(LangId);
  if LangId = Word(-1) then
    Exit;

  EnumProfiles:= nil;
  IProfiles.EnumLanguageProfiles(LangId, EnumProfiles);
  if EnumProfiles = nil then
    Exit;

  EnumProfiles.Next(1, LangProfile, FetchedItems);
  while FetchedItems > 0 do
  begin
    strProfile := '';

    hRet:= IProfiles.GetLanguageProfileDescription(LangProfile.clsid,
        LangProfile.langid, LangProfile.guidProfile, strProfile);
    if Succeeded(hRet) then
    begin
      if strProfile=slRet then
      begin
        //slRet.Add(strProfile);   ActivateLanguageProfile
        IProfiles.ActivateLanguageProfile(LangProfile.clsid, LangProfile.langid, LangProfile.guidProfile);
        result:=True;
        Break;
      end;
    end;
    EnumProfiles.Next(1, langProfile, FetchedItems);
  end;
end;
设置输入法的
----------------------------------------------
qq:171833017,靖源软件http://www.dxmylove.com
作者:
男 lwcvod (lwcvod) ★☆☆☆☆ -
普通会员
2018/10/19 13:33:39
13楼: 设置输入法,get输入法,,mak 下
----------------------------------------------
Delphi
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2018/10/19 15:14:25
13楼: 我的 win10 下 楼上的代码 并不能获取到 IME 的列表
因为我默认是一个 ENG 美式键盘。
此帖子包含附件:
PNG 图像
大小:9.0K
----------------------------------------------
(C)(P)Flying Wang
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2018/10/19 15:15:33
14楼: GetCurrentLanguage 返回的是 $0409

LangId := $0804; 也就是 2052
LangId := SysLocale.DefaultLCID;
IProfiles.EnumLanguageProfiles(LangId, EnumProfiles);
这样才能列出来。

想关闭输入法,可以使用如下代码。
  if Name = '' then
  begin
    ALangID := $0409;
    IProfiles.ChangeCurrentLanguage(ALangID);
    exit;
  end;
----------------------------------------------
(C)(P)Flying Wang
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2018/10/19 19:46:29
15楼: https://quality.embarcadero.com/browse/RSP-21456
欢迎大家投票。

没有账号的,可以到
http://edn.embarcadero.com
去注册。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2018/10/22 14:22:30
16楼: 关闭输入法

  if slRet = '' then
  begin
    LangProfile.clsid := GUID_NULL;
    LangProfile.langid := $0409;
    LangProfile.guidProfile := GUID_NULL;
    IProfiles.ChangeCurrentLanguage(LangProfile.langid);
    IProfiles.ActivateLanguageProfile(LangProfile.clsid, LangProfile.langid, LangProfile.guidProfile);
    exit;
  end;
----------------------------------------------
(C)(P)Flying Wang
作者:
男 zhangl (二黑) ★☆☆☆☆ -
盒子活跃会员
2018/10/23 11:30:55
17楼: 试了12楼的代码, 切换输入法不成功, 我的环境: WIN10 LTSB 10240, Delphi2007, 花儿五笔

to: 楼主, 我的QQ: 47324905, 交个朋友, 红包就免了
----------------------------------------------
报到
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2018/10/23 12:05:52
18楼: 你应该看看 16 楼的代码。特别是 14 楼 和 16楼 的,你会发现区别的。

https://quality.embarcadero.com/browse/RSP-21464
这个里头的代码是  WIN2003R2 和 WIN7 上获取 IME 列表的代码。
支持 获取所有语言的输入法,而不是特定语言的。

能解决我在 13 楼 提出的问题。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 salala (salala) ▲▲△△△ -
普通会员
2019/4/6 19:53:23
19楼: 试了16楼代码,关闭输入法,用搜狗输入法,关闭不了。
----------------------------------------------
-
作者:
男 salala (salala) ▲▲△△△ -
普通会员
2019/4/6 20:36:40
20楼:  16楼代码是可行的。前提是要装上英文输入法。
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行148.4375毫秒 RSS