找回密码  加入

AUTOIT CN

搜索
查看: 244|回复: 7

[系统综合] 日文键盘怎么发送模拟键?

[复制链接]
发表于 2018-9-25 20:07:28 | 显示全部楼层 |阅读模式
日文键盘有几个标准108键没有的按键,如何把这几个按键利用起来呢?send函数没有这几给键吖。
比如键盘旁边“变换”,“无变换”想办法给它搞个快捷键

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入

x
发表于 2018-9-26 09:04:30 | 显示全部楼层
用KeyboardTest试一下那两个键名。

评分

1

查看全部评分

 楼主| 发表于 2018-9-26 22:13:03 | 显示全部楼层
志艺风云 发表于 2018-9-26 09:04
用KeyboardTest试一下那两个键名。

然后呢?字数字数字数
 楼主| 发表于 2018-9-26 22:25:29 | 显示全部楼层
志艺风云 发表于 2018-9-26 09:04
用KeyboardTest试一下那两个键名。

测了,按那两个键什么反应都没有。
发表于 2018-9-26 23:01:08 | 显示全部楼层
_WinAPI_SetWindowsHookEx
运行帮助文档例子,看控制台信息

评分

1

查看全部评分

 楼主| 发表于 2018-9-26 23:19:22 | 显示全部楼层
afan 发表于 2018-9-26 23:01
_WinAPI_SetWindowsHookEx
运行帮助文档例子,看控制台信息

无变换,变换,变换右边那个键,跑出来是下面三个码,请超版过目。下一步怎么弄?给个方向
$LLKHF_UP: scanCode - 123        vkCode - 29
$LLKHF_UP: scanCode - 121        vkCode - 28
$LLKHF_UP: scanCode - 112        vkCode - 240
发表于 2018-9-27 12:04:08 | 显示全部楼层
_WinAPI_RegisterHotKey
 楼主| 发表于 2018-9-28 01:11:38 | 显示全部楼层
本帖最后由 ttexas 于 2018-9-30 19:42 编辑

照猫画虎,写了一个,用得着的拿去参考。可以根据自己的习惯修改。
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#PRE_Icon=C:\Windows\System32\SHELL32.dll
#PRE_UseX64=n
#PRE_Res_requestedExecutionLevel=None
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
#include <APISysConstants.au3>
#include <MsgBoxConstants.au3>
#include <WinAPISys.au3>
#include <WindowsConstants.au3>
#include <Misc.au3>
Local $s_identification= '日文键盘利用程序'
If _Singleton($s_identification, 1) = 0 Then
        ;MsgBox(4096, "出错了", "本程序已经运行了一个实例!")
        Exit
EndIf
Opt('TrayAutoPause', 0)
OnAutoItExitRegister('OnAutoItExit')
Local $hWnd = GUICreate("日文键盘利用变换/无变换/前候补")
TrayTip("日文键盘利用", "变换->空格/无变换->空格/前候补->PageUp", 2, 1)
TraySetToolTip("日文键盘利用"& @CRLF &"变换->空格" & @CRLF& "无变换->空格" & @CRLF& "前候补->PageUp"& @CRLF)
TraySetIcon("shell32.dll", -174)
GUIRegisterMsg($WM_HOTKEY, 'WM_HOTKEY')
; Set ALT-D
;_WinAPI_RegisterHotKey($hWnd, 0x0144, $MOD_ALT, 0x44);按住alt +0x44=alt+d
; Set ESC
;_WinAPI_RegisterHotKey($hWnd, 0x011B, 0, 0x1B)
_WinAPI_RegisterHotKey($hWnd, 0x011B, 0, 29)  ;Set 29 无变换
_WinAPI_RegisterHotKey($hWnd, 0x011C, 0, 28) ;Set 28 变换
_WinAPI_RegisterHotKey($hWnd, 0x011D, 0, 242) ;Set VK_242,“前候补”,变换右边那个键
  
While 1
Sleep(1000)
WEnd
Func WM_HOTKEY($hWnd, $iMsg, $wParam, $lParam)
#forceref $hWnd, $iMsg, $wParam
Switch _WinAPI_HiWord($lParam)
  Case 0x44
   ;MsgBox($MB_SYSTEMMODAL, '', 'You pressed ALT-D')
  Case 29
   ConsoleWrite( 'You pressed 无变换' & @CRLF)
   Send("{SPACE}" )  ;发送空格键
  Case 28
   ConsoleWrite( 'You pressed 变换' & @CRLF)
   Send("{ASC 032}")  ;发送空格键的asc字符,效果一样的
  Case 242
   ConsoleWrite( 'You pressed Key242' & @CRLF)   
   Send("{PGUP}")  ;发送pageup
  EndSwitch         
EndFunc   ;==>WM_HOTKEY
                    
Func OnAutoItExit()
;_WinAPI_UnregisterHotKey($hWnd, 0x0144)
_WinAPI_UnregisterHotKey($hWnd, 0x011B)
_WinAPI_UnregisterHotKey($hWnd, 0x011C)
_WinAPI_UnregisterHotKey($hWnd, 0x011D)
EndFunc   ;==>OnAutoItExit


评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|小黑屋|手机版|AUTOIT CN ( 鲁ICP备15028933号-3 )谷歌 百度

GMT+8, 2018-10-20 07:02 , Processed in 0.085873 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表