哪些输入法类似谷歌拼音,文字直接上屏?

改了改代码,更简洁有效了,这下几乎完全不闪了

#Persistent
#SingleInstance Force
SetWinDelay, -1
CoordMode, Caret , Screen

SetTimer, movesogou, 1
return

movesogou:
   if !GetCaretPos(x, y)
      ;MsgBox, 无法识别光标位置
      1=1
   else {
      CoordMode, Mouse
XX:=x-30
YY:=y
WinMove, ahk_class SoPY_Cand, , XX, YY
return
}
return

;=============库代码,勿改动===============
GetCaretPos(ByRef x, ByRef y) {
   static OBJID_CARET := 0xFFFFFFF8
   CoordMode, Caret
   if (A_CaretX != "" && A_CaretY != "")
      x := A_CaretX, y := A_CaretY
   else {
      AccObject := AccObjectFromWindow(WinExist("A"), OBJID_CARET)
      Pos := AccLocation(AccObject)
      x := Pos.x, y := Pos.y
   }
   Return x && y
}

AccObjectFromWindow(hWnd, idObject = 0) {
   static IID_IDispatch   := "{00020400-0000-0000-C000-000000000046}"
        , IID_IAccessible := "{618736E0-3C3D-11CF-810C-00AA00389B71}"
        , OBJID_NATIVEOM  := 0xFFFFFFF0, VT_DISPATCH := 9, F_OWNVALUE := 1
        , h := DllCall("LoadLibrary", "Str", "oleacc", "Ptr")
        
   VarSetCapacity(IID, 16), idObject &= 0xFFFFFFFF, AccObject := 0
   DllCall("ole32\CLSIDFromString", "Str", idObject = OBJID_NATIVEOM ? IID_IDispatch : IID_IAccessible, "Ptr", &IID)
   if DllCall("oleacc\AccessibleObjectFromWindow", "Ptr", hWnd, "UInt", idObject, "Ptr", &IID, "PtrP", pAcc) = 0
      AccObject := ComObject(VT_DISPATCH, pAcc, F_OWNVALUE)
   Return AccObject
}

AccLocation(Acc, ChildId := 0, ByRef Position := "") {
   static type := (VT_BYREF := 0x4000) | (VT_I4 := 3)
   try Acc.accLocation( ComObject(type, &x := 0), ComObject(type, &y := 0)
                      , ComObject(type, &w := 0), ComObject(type, &h := 0), ChildId )
   catch
      Return
   _x := NumGet(x, "int"), _y := NumGet(y, "int"), _w = NumGet(w, "int"), _h := NumGet(h, "int")
   Position := "x" . _x . " y" . _y . " w" . _w . " h" . _h
   Return {x: _x, y: _y, w: _w, h: _h}
}

确实变快了,:ox::beers:

大佬,只能用在搜狗输入法嘛?

其他输入法用,得改代码。你是什么输入法啊?
test

是 win11 的微软拼音,要改哪里哇?

微软拼音移动不了,得其他方案

使用手心输入法,设置中设置成 单行模式
并修改了代码中 相应位置为,ahk_class PalmInputUICand
体验不错

不过在一些应用上,cand 没办法跟随字符输入而移动,例如 notepad++

一直看不太懂頂功輸入法,但我有以下兩點猜測:

一是頂功輸入法只能照顧到常用字,次常用字、生僻字、異體字、繁體字,應該是沒有編碼的。

二,頂功輸入法為了把前一個字「頂」出去,肯定有一套非常複雜的規則,要記要背的東西很多。

第一点,是的,并且字少必然能导致重码降低……而不重码是能顶的关键

第二点 不尽然,乱序字根不靠背,靠练,前500练熟了…会有举一反三的能力,当然也可以说是一种背吧……但还是和86啥的背和学不太一样

寧願去背五筆,即便難背,至少背會了就能用。

你說的「靠練」才是真的搞不懂…

我用倉頡,從來沒「練」過,該快就快,該慢就慢,首先是把字打出來。頂功輸入法,快不快先不說,可別到時連字都打不出來…

做了个微软输入法的版本,特别简洁,不过还没做完:

0

也可以遮蔽拼音部分:

1

1 个赞

单独做了个微软输入法的版本
微软输入法plus——让输入法回归专注~ - 发现频道 - 小众软件官方论坛 (appinn.net)

1 个赞

我还是非常不建议自己改这些的。
现在用的是一个很老版本的qq输入法,输入的时候不会在光标处生成字母。
以我的经验,这种在光标处先出的字母的,在一些带自动代码提示的软件会出问题
而且还会有很多游戏的兼容问题