修改微软拼音输入法的“/”快捷键

By rebellion51 at 2022-03-14 • 0人收藏 • 814人看过

微软拼音系统自带,很好用,响应快,也没有广告,但是有一个不爽的地方,就是它的“/”键,无论是中文模式还是英文模式,都只能输出“/”,这与我们常规的输入习惯不一样。我们希望的是:在中文模式下,按“/”键,输出“、”,英文模式下,按“/”键,输出“/”。一番搜索后,从网上的一段ahk代码获得灵感。

发布后创建快捷方式,放在startup文件夹,可实现开机自动启动。

我的环境是:win11,64位系统。

以下是代码:

import win.ui;
/*DSG{{*/
mainForm = win.form(text="顿号";right=959;bottom=591)
mainForm.add()
/*}}*/

import win.ui.menu; 
import key.hotkey;
import win.util.tray;

//创建超级热键,必须用于窗口程序中
var hotkey = key.hotkey(mainForm)

//判断输入法状态是否是中文
var isChineseMode = function(){
    imm32 = raw.loadDll("imm32")
    var hwnd = ::User32.GetForegroundWindow()
    var hwnd2 = imm32.ImmGetDefaultIMEWnd(hwnd)
    var ime_status = ::User32.SendMessage(hwnd2, 0x283/*_WM_IME_CONTROL*/, 0x001 ,0)
    return ime_status == 1025; 
}

//为“/”绑定热键
hotkey.reg(
    "/",
    function(hwnd,...){
        if isChineseMode(){
            ..key.sendString("、")
        } else {
            ..key.sendString("/")
        }         
    }
)

// 创建托盘图标
var tray = win.util.tray(mainForm)
// 不在前台显示
mainForm.show(false);

mainForm.wndproc = {
    [0xACCF/*_WM_TRAYMESSAGE*/ ] = function(hwnd,message,wParam,lParam){
        if( lParam = 0x205/*_WM_RBUTTONUP*/ ){ 
            var pt = ::POINT();
            ::User32.GetCursorPos(pt); 
            
            //弹出托盘菜单以前,一定要前置主窗口中,不然不点击菜单不会消失
            win.setForeground(mainForm.hwnd)
            mainForm.popmenu.popup(pt.x,pt.y,true )
        }    
    }
}

mainForm.popmenu = win.ui.popmenu(mainForm);//创建弹出菜单

mainForm.popmenu.add('&退出',function(id){ mainForm.close() })

return win.loopMessage();


5 个回复 | 最后更新于 2022-03-14
2022-03-14   #1

感谢分享, ,有用

2022-03-14   #2

要发布的话,还得先导入import win.ui.menu

否则发布了也运行不了

2022-03-14   #3

回复#2 @rebellion51 :

我把menu代码给你添加进去了

2022-03-14   #4

回复#3 @admin :

多谢多谢

2022-03-14   #5

可能win11没这个问题,我在测试时,中文始终返回的1025。 微软应该增加个选项,用户选择/键的输出方式,可惜封闭惯了。

登录后方可回帖

登 录
信息栏
 私人小站

本站域名

ChengXu.XYZ

投诉联系:  popdes@126.com



快速上位机开发学习,本站主要记录了学习过程中遇到的问题和解决办法及上位机代码分享

这里主要专注于学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.
如果侵权,联系 Popdes@126.com

友情链接
Aardio官方
Aardio资源网


才仁机械


网站地图SiteMap

Loading...