F5编程
❶ 编程中的快捷键
alt + /代码提示
shift+ctrl +o ,导入包
shift+ctrl+f 代码整理
ctrl+1 错误提示
❷ c语言编程运行程序时F5与ctrl+F5有什么区别
F5是调试,Ctrl+F5是运行。没有断点时一样,有断点时F5将在断点处暂停,进行调试。
❸ 请问Visual C++编程完怎么运行 点了F5出现下面这种情况怎么办
F5是调试功能,但是你没有可执行文件(*.exe)怎么去运行程序来调试呢,你要先编译和链接(感叹号按钮前的那几个按钮)来构建出exe文件,在F5调试
❹ 数控车床编程中U1F5是什么意思
数控机床中UVW分别代表xyz,UVW为相对坐标,XYZ为绝对坐标,U1F5意思就是以相对方式向x方向移动1毫米,速度是每分钟5 毫米
转载于青岛数控编程培训学校
❺ 机床全闭环转换在plc状态里面怎么知道快捷代码
你好!
西门子快捷键
操作内容
快捷键
F1
获取帮助
F2
梯形图进入编辑模式
F3
梯形图进入运行模式
Shift+F3
梯形图进入监控模式(可在线编辑)
F4
编译程序
F5
常开接点输入
Shift+F5
并联常开接点输入
F6
常闭接点输入
Shift+F6
并联常闭接点输入
F7
线圈输出
F8
功能指令输入
F9
横线输入
Shift+F9
竖线输入
Ctrl+F10
删除竖线
Ctrl+Alt+F10
取反指令输入
delete
删除当前元件和线条
Shift+delete
删除光标所在一行的内容
insert
光标方框颜色变玫瑰红色,可以插入单个元件
Shift+insert
插入一行
ALT+F1
切换至语句表模式
ALT+1
软元件测试(监控模式下有效)
Ctrl+F
查找软元件和地址
HOME
将光标移至同行的第一列
END
将光标移至同行的最后一列
PAGE UP
垂直向上移动一个屏幕
PAGE DOWN
垂直向下移动一个屏幕
LEFT ARROW
将光标向左移动一个单元格
RIGHT ARROW
将光标向右移动一个单元格
UP ARROW
将光标向上移动一个单元格
DOWN ARROW
将光标向下移动一个单元格
CTRL + HOME
将光标移至第一个网络的第一个单元格
CTRL + END
将光标移至最后一个网络的最后一个单元格
CTRL + PAGE UP
显示下一个POU,向左移动浏览POU标记
CTRL + PAGE DOWN
显示下一个POU,向右移动浏览POU标记
TAB
选择带布尔(位值)参数指令时,TAB键移至该指令中的下一个布尔参数(仅限FBD)当您选择一个带布尔
SHIFT + PAGE UP
向上扩展网络选择
SHIFT + PAGE DOWN
向下扩展网络选择
CONTROL+SHIFT+HOME
扩展选择至第一个网络
CONTROL+ SHIFT + END
扩展选择至最后一个网络
CONTROL+ SHIFT + END
选择全部网络
CTRL+ X SHIFT +DELETE
选择网络系列时,剪切系列;当光标位于网络标题上时,剪切整个网络格内容
CTRL+ C CTRL + INSERT
选择网络系列时,复制系列;当光标位于网络标题上时,复制整个网络格内容
CTRL + V SHIFT + INSERT
选择网络系列时,粘贴系列;当光标位于网络标题上时,粘贴网络;当光在光标当前位置的前方/上方粘贴所选内容
SPACEBAR
编辑当前单元格的助记符或操作数
ENTER
编辑当前单元格的助记符或操作数
CTRL + LEFT ARROW
放下一条水平线,将光标向左移动一个单元格
CTRL + RIGHT ARROW
放下一条水平线,将光标向右移动一个单元格
CTRL + UP ARROW
放下一条垂直线,将光标向上移动一个单元格
CTRL + DOWN ARROW
放下一条垂直线,将光标向下移动一个单元格
BACKSPACE
将光标向左移动一个单元格,删除当前单元格
SHIFT + LEFT ARROW
选择当前网络,将光标向左移动一个单元格
SHIFT + RIGHT ARROW
选择当前网络,将光标向右移动一个单元格
SHIFT + HOME
选择当前网络,将光标置于当前行的第一个单元格处
SHIFT + END
选择当前网络,将光标置于当前行的最后一个单元格处
SHIFT+DOWN ARROW
从当前网络向下选择
SHIFT + UP ARROW
从当前网络向上选择
SHIFT + PAGE UP
从当前网络向上选择相邻网络的一个页面
SHIFT + PAGE DOWN
从当前网络向下选择相邻网络的一个页面
顶部选择全部相邻网络
CTRL + SHIFT+HOME
从光标至POU
CTRL + SHIFT+END
从光标至POU底部选择全部相邻网络
CTRL + A
CTRL + A 选择POU中的全部网络
CONTROL+SHIFT+HOME
扩展选择至第一个网络
CONTROL+ SHIFT+END
扩展选择至最后一个网络
CTRL + F
查找字符串
CTRL + H
替换字符串
CTRL + F2
在光标的当前位置设为书签
CTRL + F3
插入网络
CTRL + F4
删除网络
SHIFT + BACKSPACE
退格
ALT + BACKSPACE
撤销
SHIFT + TAB
向后跳格
B
三菱快捷键
(操作)内容
快捷键(操作)
创建新工程文件
Ctrl + N
打开工程文件
Ctrl + O
保存工程文件
Ctrl + S
打印
Ctrl + P
撤销 梯形图剪切/粘贴
Ctrl + Z
删除选择内容并存入剪切板
Ctrl + X
复制
Ctrl + C
粘贴
Ctrl + V
显示/隐藏工程文件数据
Alt + 0
软元件检测
Alt + 1
跳转
Alt + 2
局部运行
Alt + 3
单步运行
Alt + 4
远程操作
Alt + 6
工程数据列表
Alt + 7
网络参数设置
Alt + 8
关闭有效窗口
Ctrl + F4
转移到下面的窗口
Ctrl + F6
结束应用程序
Alt + F4
插入列
Ctrl + Ins
删除列
Ctrl + Del
转换当前(编辑)程序
F4
转换当前所有(编辑)程序
Alt + Ctrl + F4
写入(运行状态)
Shift + F4
显示/隐藏注释
Ctrl + F5
转换为监控器模式/开始监控
F3
转换为监控器(写模式)
Shift + F3
开始监控(写模式)
Shift + F3
输入梯形图时移动光标.
Ctrl + Cursor key
停止监控
Alt + F3
插入行
Shift + Ins
删除行
Shift + Del
写模式
F2
读模式
Shift + F2
显示/隐藏说明
Ctrl + F7
显示/隐藏注释
Ctrl + F8
显示/隐藏机型
Alt + Ctrl + F6
开始监控.
Ctrl + F3
停止监控.
Alt + Ctrl + F3
梯形图和指令表之间转换
Alt + F1
查找触点或继电器线圈
Alt + Ctrl + F7
SFC和梯形图转换
Ctrl + J
插入行
Shift + Ins
删除行
Shift + Del
插入列
Ctrl + Ins
删除列
Ctrl + Del
转换到写模式
F2
转换到读模式
Shift + F2
转换为监控器模式/开始监控
F3
转换为监控器(写模式)
Shift + F3
开始监控(写模式)
Shift + F3
停止监控
Alt + F3
开始监控所有窗口.
Ctrl + F3
停止监控所有窗口.
Alt + Ctrl + F3
转换当前编辑模块
F4
显示/隐藏机型名
Alt + Ctrl + F6
转换当前所有编辑程序
Alt + Ctrl + F4
显示/隐藏注释
Ctrl + F5
移动 SFC 光标
Ctrl + Cursor key
查找触点或线圈
Alt + Ctrl + F7
程序表示(MELSAP-L)
Alt + Ctrl + F8
单步
F5
块开始步(有END检查)
F6
块开始步(没有END检查)
Shift + F6
跳转
F8
END 步
F7
Dummy 步
Shift + F5
传输
F5
选择分支
F6
同时分支
F7
选择集中
F8
同时集中
F9
垂直线
Shift + F9
变换属性为通常
Ctrl + 1
改变属性以储存线圈
Ctrl + 2
改变属性以储存操作
Ctrl + 3
改变属性以储存操作
Ctrl + 4
改变属性以重新复位
Ctrl + 5
垂直线(编辑线)
Alt + F5
选择分支(编辑线)
Alt + F7
同时分支(编辑线)
Alt + F8
选择集中(编辑线)
Alt + F9
同时集中(编辑线)
Alt + F10
删除行
Ctrl + F9
块暂停
F5
步暂停
F6
块运行
F8
步运行
F7
单步运行
F9
运行所有块
F10
强制块停止
Shift + F8
强制步停止
Shift + F7
强制复位停止
Shift + F9
移动到先头行
Ctrl + Home
移动到最后行
Ctrl + End
选择全部文本
Ctrl + A
重做撤消的处理
Ctrl + Y
被指定行里定位
Ctrl + J
进行查找内容
Ctrl + F
查找时的下候补查找
F5
查找时的上候补查找
Shift + F5
进行文字列替换
Ctrl + H
进行书签的设定/解除
Ctrl + F7
进行书签的下候补查找
F7
进行书签的上候补查找
Shift + F7
转换编辑中的程序
F4
转换编辑中的全部的程序
Alt + Ctrl + F4
RUN中进行加注
Shift + F4
开始全部窗口的临控
Ctrl + F3
停止全部窗口的临控
Alt + Ctrl + F3
开始临控
F3
停止临控
Alt + F3
显示标签选择画面
F11
显示函数选择对话框
Shift + F11
切换被ST的窗口上下,左右拆分的窗口
Shift + Tab
C
欧姆龙快捷键
如果记不住上面的内容,那一定要记住下面的几个常用的快捷键,平时操作时也能方便点~
创建新工程文件
Ctrl + N
打开工程文件
Ctrl + O
保存工程文件
Ctrl + S
撤销 梯形图剪切/粘贴
Ctrl + Z
删除选择内容并存入剪切板
Ctrl + X
复制
Ctrl + C
粘贴
Ctrl + V
显示/隐藏工程文件数据
Alt + 0
软元件检测
Alt + 1
常开
F5
常闭
F6
编程要以将要使用的PLC为目标。PLC的类型可以随时改变,一旦改变,程序也跟着改变。按照不成文的约定,在开始的时候最好设置好正确的PLC类型。
1.开始一个新的工程
按照以下步骤来建立一个新的工程:
(1)选择工具栏中的新建按钮。
(2)定义工程的设备条目。
(3)保存工程
当一个新的PLC被添加到工程中的时候,将创建以下空表:
1)空的本地符号表;
2)全局符号表;
3)IO表;
4)PLC内存数据;
5)PLC设置数据。
2.编写一个梯形图程序
下面以一个交通灯次序控制为例说明,该交通灯次序是一个标准的英国交通灯次序,顺序如下:只有红灯→红灯和和黄灯同时→只有绿灯→只有黄灯。
编写一个梯形图程序,包括: 生成符号和地址、创建一个梯形图程序、编译程序。
(1)按照以下步骤来生成符号
1)单击图表窗口,在工具栏中选择查看本地符号按钮。如下图
2)从工具栏选择新建符号按钮,
符号插入对话框将被显示。
3)在名称栏中键入'AmberLight’.
4)在地址栏中键入’10.01’
5)将数据类型栏设置为'BOOL’ ,表示一个位(二进制)值
6)在注释栏中输入'准备通行/停止’
7)选择确定按钮以继续进行
对下表的每一项重复以上操作
名称
地址
数据类型
注释
RedLight
10.00
BOOL
停止
GreenLight
10.02
BOOL
通行
RedLightTimer
1
NUMBER
红灯周期
AmberLightTimer
2
NUMBER
黄灯周期
GreenLightTimer
3
NUMBER
绿灯周期
AmberOnlyTimer
4
NUMBER
黄灯周期
RedTimerDone
T0001
BOOL
AmberTimerDone
T0002
BOOL
GreenTimerDone
T0003
BOOL
AmberOnlyTimerDone
T0004
BOOL
TimeInterval
48
NUMBER
次序的快慢(滴答数)
在CX-Programmer中使用标准地址格式是很重要的。按照其定义类型,一个地址有两部分,一个通道和一个位号码。
(2)建立一个梯形图程序
按照以下步骤来生成一个梯形图程序
1)确认在图表工作区中显示梯形图程序。
2)用属性框来给梯级一个注释(将光标移动到梯级,通过内容菜单来使用属性框功能)
3)梯级注释占位符可以被插入到编译代码中(如果PLC的包括注释 指令属性被设置),注释也可以被保存为一个文件或者文件卡片。所有的注释都被保存在工程文件中。
4)工具栏中的新建常闭接触点按钮,在梯级的开始放置一个常闭接触点,然后点击左上方的格子。新建的常闭接触点将被显示。
5)在名称或值列表栏中选择'AmberOnlyTimerDone’,然后选择确定按钮。
注:现在沿着梯级将显示一个红色的记号,这表明这个梯级没有被完成,出现了一个错误。
6)在工具栏选择新建PLC指令按钮,并点击接触点的旁边,这样就添加一条新的指令。新指令对话框将被显示。
7)输入指令'TIM’ ,在操作数栏中输入两个操作数'RedLightTimer’和 'TimeInterval’
注:符号 'RedLightTimer’ 的值用作操作数-数值“1”。在CX-Programmer 中,必需使用NUMBER类型来作为TIM/CNT指令的第一个操作数。不允许使用计时器/计数器地址(例如:将不允许T001)。
8)选择确定按钮来接受刚才在新指令对话框中所做的设置。
注:在梯级的边缘不再有红色的记号。在这个梯级里面已经没有错误了。
9)使用属性框来给这个指令一个注释(将光标放在指令的标题上,激活属性框)。输入文本“只有红灯”然后回车。
10)在下一梯级的开端放置一个新的接触点(如同上述,或者将光标移到这个梯级,使用输入/接触点/普通 打开菜单命令来或者使用快捷键,通常是“C”来进行这一操作)新接触点对话框将被显示。
11)从名称或者地址栏中选择'RedTimerDone’,然后选择确定按钮。
12)在接触点旁边插入一条新的指令,显示新建指令对话框。(如同上述,或者使用插入/指令菜单命令,或者使用快捷键-通常是'I’来执行)。在指令编辑框中输入指令 'TIM’,在操作数栏输入两个操作数'AmberLightTimer’ 和'TimeInterval’ 。
13)选择确定按钮,接受刚才的设置。.
14)给这个指令一个注释“红灯和黄灯一同”。
15)在下一个梯级插入新接触点,显示新接触点对话框
16)在名称和内容栏选择'AmberTimerDone’ ,选择确定按钮
17)在接触点旁边插入一条指令,显示新建指令对话框。输入指令 'TIM’,在操作数栏里面输入两个操作数 'GreenLightTimer’和 'TimeInterval’。
18)选择确定按钮,接受刚才的设置。.
19)给这个指令一个注释“只有绿灯”。
20)在下一个梯级插入新接触点,显示新接触点对话框。
21)在名称和内容栏选择'GreenTimerDone’ ,选择确定按钮。
22)在接触点旁边插入一条指令,显示新建指令对话框。输入指令 'TIM’,在操作数栏里面输入两个操作数AmberOnlyTimer’ 和 'TimeInterval’ 。
23)选择确定按钮,接受刚才的设置。
24)给这个指令一个注释“只有黄灯”。
梯形图程序类似下图(取决于选择的显示参数)。
按照以下步骤将每一个交通灯的输出放置到程序中去。
1)确认在图表工作区中显示梯形图程序。
2)在下一个梯级的开始添加一个接触点,把它分配给符号 'RedTimerDone’。(在新建接触点对话框的名称和地址栏中选择符号的名称)。
3)红灯和黄灯计时器的右边添加一个常闭接触点,把它分配给符号 'GreenTimerDone’。
4)在工具栏中选择新建线圈按钮,在绿灯计时器的旁边新建一个线圈。在名称和地址栏中选择 'RedLight’,然后选择确定按钮。
5)在方的另一个梯级中,在左边添加一个接触点,把它分配给符号 'AmberTimerDone’。
6)在这个接触点的右边,放置一个常闭接触点,把它分配给符号 'GreenTimerDone’。
7)在第二个接触点的右方,放置一个线圈,把其分配给符号 'RedLight’。
8)在下一个梯级,在左边放置一个接触点,把其分配给符号 'AmberTimerDone’。
9)在这个接触点右方,放置一个常闭接触点,并把其分配给符号 'GreenTimerDone’。
10)在第二个接触点的右方,放置一个线圈,把其分配给符号'AmberLight’。
11)当选择的格子在梯级的右边时,回车。这将建立一个新行。
12)在左边的 'AmberTimerDone’ 接触点下方,放置一个新的常闭接触点, (但是还在同一个梯级里面)把它分配给符号 'RedTimerDone’。
13)从工具栏中选择新建垂直线按钮,新建一个垂直线,其从接触点 'GreenTimerDone’ 到线圈'AmberLight’。要把它和'RedTimerDone’连接,可以在工具栏中选择新建水平线按钮,添加一条水平线,并同垂直线连接。
14)14)下一个梯级的开头放置一个接触点,通过新建接触点对话框把其分配给符号'GreenTimerDone’。
15)15)在接触点旁边放置一个线圈,把其分配给符号 'GreenLight’。
16)16)通过新建指令对话框,在下一个梯级里面添加指令END’。
梯形图的输出梯级如下图所示。
使用下面的步骤来检查梯形图程序:
1)确认在图表工作区中显示梯形图程序。
2)在工具栏选择查看本地符号视图按钮,切换到符号表。从工具栏选择 显示地址引用按钮在激活地址引用工具。
3)通过选择每一个符号,并且显示地址引用工具或者在图表中移动光标来检查其在程序中的用法。
也可以在助记符视图中查看梯形图视图。可以在助记符视图或者在梯形图编辑器中显示一个梯级来输入块程序。
在工具栏中选择助记符视图按钮来激活助记符视图。要在梯形图编辑器中直接输入助记符指令,对相关梯级选择以语句方式查看。
(3)编译程序
无论是在线程序还是离线程序,在其生成和编辑过程中不断被检验。在梯形图中,程序错误以红线出现。如果梯级中出现一个错误,在梯形图梯级的右边将会出现一道红线。例如在图表窗口已经放置了一个元素,但是并没有分配符号和地址的情况下,这种情形就会出现。
按照以下步骤来编译程序:
列出程序中所有的错误,按下鼠标右键并在工具栏中选择编译程序按钮。输出(例如编译进程或者错误细目)将显示在输出窗口的编译标签下面。
3.把程序下载到PLC
按照以下步骤来将程序下载到PLC:
1)选择工具栏中的保存工程按钮,保存当前的工程。如果在此以前还未保存工程,那么就会显示保存CX-Programmer 文件对话框。在文件名栏输入文件名称,然后选择保存按钮,完成保存操作。
2)选择工具栏中的在线工作按钮,与PLC进行连接。将出现一个确认对话框,选择确认按钮。由于在线时一般不允许编辑,所以程序变成灰色。
3) 3) 选择工程工作区里面的程序对象。
4) 4) 选择工具栏里面的程序模式按钮,把PLC的操作模式设为编程。如果未作这一步,那么 CX-Programmer 将自动把PLC设置成此模式。
5) 5) 选择工具栏上面的下载按钮,将显示下载选项对话框。
6) 6) 设置程序栏,并单击确认按钮。
4.从PLC传送程序
按照下列步骤将PLC程序上传。
1)选择工程工作区中的PLC对象。
2)选择工具栏中的上载按钮。工程树中的第一个程序将被编译。如果PLC是离线状态,那么将显示确认对话框,选择确认按钮,与PLC连接。将显示上载对话框。
3)设置程序栏,然后选择确认按钮。
5.工程程序和PLC程序的比较
按照以下步骤来比较工程程序和PLC程序。
1)选择工程工作区中的PLC对象。
2)选择工具栏中的与PLC进行比较按钮,将显示比较选项对话框。
3)设置程序栏,选择确认按钮。比较对话框将被显示。
6.在执行的时候监视程序
一旦程序被下载,就可以在图表工作区中对其运行进行监视(以模拟显示的方式)。按照以下步骤来监视程序。
1)选择工程工作区中的PLC 对象
2)择工程工具栏中的切换PLC监视按钮。
3)程序执行时,可以监视梯形图中的数据和控制流,例如,连接的选择和数值的增加。
7.在线编辑
虽然下载的程序已经变成灰色以防止被直接编辑,但是还是可以选择在线编辑特性来修改梯形图程序。当使用在线编辑功能时,通常使PLC运行在“监视”模式下面。在“运行”模式下面进行在线编辑是不可能的。使用以下步骤进行在线编辑。
1)拖动鼠标,选择要编辑的梯级。
2)在工具栏中选择与PLC进行比较按钮,以确认编辑区域的内容和PLC内的相同。
3)在工具栏中选择在线编辑梯级按钮。梯级的背景将改变,表明其现在已经是一个可编辑区。此区域以外的梯级不能被改变,但是可以把这些梯级里面的元素复制到可编辑梯级中去。
4)编辑梯级。
5)当对结果满意时,在工具栏中选择传送在线编辑修改按钮,所编辑的内容将被检查并且被传送到PLC。.
6)一旦这些改变被传送到PLC,编辑区域再次变成只读。选择工具栏中的取消在线编辑按钮,可以取消在确认改变之前所做的任何在线编辑。
❻ f1到f12键在c语言编程调试中的功能
不同的ide的快捷键都是不同的,f5一般是运行。你要有具体的开发环境和语言没关系
❼ 三菱plc编程过程中的快捷键以及F1-F10这些键都有哪些功能
GX Developer中的,
创建新工程文件Ctrl + N
打开工程文件Ctrl + O
保存工程文件Ctrl + S
打印Ctrl + P
撤销 梯形图剪切/粘贴Ctrl + Z
删除选择内容并存入剪切板Ctrl + X
复制Ctrl + C
粘贴Ctrl + V
显示/隐藏工程文件数据Alt + 0
软元件检测 Alt + 1
跳转Alt + 2
局部运行 Alt + 3
单步运行Alt + 4
远程操作Alt + 6
工程数据列表Alt + 7
网络参数设置 Alt + 8
关闭有效窗口Ctrl + F4
转移到下面的窗口Ctrl + F6
结束应用程序Alt + F4
梯形图/指令表
(操作)内容快捷键(操作)
插入行Shift + Ins
删除行Shift + Del
写模式F2
读模式Shift + F2
显示/隐藏说明Ctrl + F7
显示/隐藏注释Ctrl + F8
显示/隐藏机型 Alt + Ctrl + F6
开始监控.Ctrl + F3
停止监控.Alt + Ctrl + F3
梯形图和指令表之间转换Alt + F1
查找触点或继电器线圈Alt + Ctrl + F7
梯形图
(操作)内容快捷键(操作)
插入列Ctrl + Ins
删除列Ctrl + Del
转换当前(编辑)程序F4
转换当前所有(编辑)程序Alt + Ctrl + F4
写入(运行状态)Shift + F4
显示/隐藏注释Ctrl + F5
转换为监控器模式/开始监控F3
转换为监控器(写模式)Shift + F3
开始监控(写模式)Shift + F3
输入梯形图时移动光标. Ctrl + Cursor key
显示对话.
停止监控Alt + F3
打开触点F5
打开触点支路Shift + F5
关闭触点F6
关闭触点支路Shift + F6
线圈F7
应用指令F8
水平行F9
垂直行Shift + F9
删除水平行Ctrl + F9
删除垂直行Ctrl + F10
上升沿脉冲Shift + F7
下降沿脉冲Shift + F8
上升沿脉冲开路Alt + F7
下降沿脉冲开路Alt + F8
上升沿脉冲输出Alt + F5
下降沿脉冲输出Alt + Ctrl + F5
变换变换操作结果Alt + Ctrl + F10
写规矩线F10
删除规矩线Alt + F9
❽ 用VB编程,按f5运行时提示属性的使用无效,可是我全都检查了一遍大神们帮帮忙
可能是你动态对其中的一个属性赋值了,而这个值和属性的类型匹配
采纳哦
❾ 编程注册快捷键 键盘键值对照表
public enum Keys
{
KeyCode = 65535, // 0x0000FFFF
Modifiers = -65536, // -0x00010000
None = 0,
LButton = 1,
RButton = 2,
Cancel = RButton | LButton, // 0x00000003
MButton = 4,
XButton1 = MButton | LButton, // 0x00000005
XButton2 = MButton | RButton, // 0x00000006
Back = 8,
Tab = Back | LButton, // 0x00000009
LineFeed = Back | RButton, // 0x0000000A
Clear = Back | MButton, // 0x0000000C
Return = Clear | LButton, // 0x0000000D
Enter = Return, // 0x0000000D
ShiftKey = 16, // 0x00000010
ControlKey = ShiftKey | LButton, // 0x00000011
Menu = ShiftKey | RButton, // 0x00000012
Pause = Menu | LButton, // 0x00000013
Capital = ShiftKey | MButton, // 0x00000014
CapsLock = Capital, // 0x00000014
KanaMode = CapsLock | LButton, // 0x00000015
HanguelMode = KanaMode, // 0x00000015
HangulMode = HanguelMode, // 0x00000015
JunjaMode = HangulMode | RButton, // 0x00000017
FinalMode = ShiftKey | Back, // 0x00000018
HanjaMode = FinalMode | LButton, // 0x00000019
KanjiMode = HanjaMode, // 0x00000019
Escape = KanjiMode | RButton, // 0x0000001B
IMEConvert = FinalMode | MButton, // 0x0000001C
IMENonconvert = IMEConvert | LButton, // 0x0000001D
IMEAccept = IMEConvert | RButton, // 0x0000001E
IMEAceept = IMEAccept, // 0x0000001E
IMEModeChange = IMEAceept | LButton, // 0x0000001F
Space = 32, // 0x00000020
Prior = Space | LButton, // 0x00000021
PageUp = Prior, // 0x00000021
Next = Space | RButton, // 0x00000022
PageDown = Next, // 0x00000022
End = PageDown | LButton, // 0x00000023
Home = Space | MButton, // 0x00000024
Left = Home | LButton, // 0x00000025
Up = Home | RButton, // 0x00000026
Right = Up | LButton, // 0x00000027
Down = Space | Back, // 0x00000028
Select = Down | LButton, // 0x00000029
Print = Down | RButton, // 0x0000002A
Execute = Print | LButton, // 0x0000002B
Snapshot = Down | MButton, // 0x0000002C
PrintScreen = Snapshot, // 0x0000002C
Insert = PrintScreen | LButton, // 0x0000002D
Delete = PrintScreen | RButton, // 0x0000002E
Help = Delete | LButton, // 0x0000002F
D0 = Space | ShiftKey, // 0x00000030
D1 = D0 | LButton, // 0x00000031
D2 = D0 | RButton, // 0x00000032
D3 = D2 | LButton, // 0x00000033
D4 = D0 | MButton, // 0x00000034
D5 = D4 | LButton, // 0x00000035
D6 = D4 | RButton, // 0x00000036
D7 = D6 | LButton, // 0x00000037
D8 = D0 | Back, // 0x00000038
D9 = D8 | LButton, // 0x00000039
A = 65, // 0x00000041
B = 66, // 0x00000042
C = B | LButton, // 0x00000043
D = 68, // 0x00000044
E = D | LButton, // 0x00000045
F = D | RButton, // 0x00000046
G = F | LButton, // 0x00000047
H = 72, // 0x00000048
I = H | LButton, // 0x00000049
J = H | RButton, // 0x0000004A
K = J | LButton, // 0x0000004B
L = H | MButton, // 0x0000004C
M = L | LButton, // 0x0000004D
N = L | RButton, // 0x0000004E
O = N | LButton, // 0x0000004F
P = 80, // 0x00000050
Q = P | LButton, // 0x00000051
R = P | RButton, // 0x00000052
S = R | LButton, // 0x00000053
T = P | MButton, // 0x00000054
U = T | LButton, // 0x00000055
V = T | RButton, // 0x00000056
W = V | LButton, // 0x00000057
X = P | Back, // 0x00000058
Y = X | LButton, // 0x00000059
Z = X | RButton, // 0x0000005A
LWin = Z | LButton, // 0x0000005B
RWin = X | MButton, // 0x0000005C
Apps = RWin | LButton, // 0x0000005D
Sleep = Apps | RButton, // 0x0000005F
NumPad0 = 96, // 0x00000060
NumPad1 = NumPad0 | LButton, // 0x00000061
NumPad2 = NumPad0 | RButton, // 0x00000062
NumPad3 = NumPad2 | LButton, // 0x00000063
NumPad4 = NumPad0 | MButton, // 0x00000064
NumPad5 = NumPad4 | LButton, // 0x00000065
NumPad6 = NumPad4 | RButton, // 0x00000066
NumPad7 = NumPad6 | LButton, // 0x00000067
NumPad8 = NumPad0 | Back, // 0x00000068
NumPad9 = NumPad8 | LButton, // 0x00000069
Multiply = NumPad8 | RButton, // 0x0000006A
Add = Multiply | LButton, // 0x0000006B
Separator = NumPad8 | MButton, // 0x0000006C
Subtract = Separator | LButton, // 0x0000006D
Decimal = Separator | RButton, // 0x0000006E
Divide = Decimal | LButton, // 0x0000006F
F1 = NumPad0 | ShiftKey, // 0x00000070
F2 = F1 | LButton, // 0x00000071
F3 = F1 | RButton, // 0x00000072
F4 = F3 | LButton, // 0x00000073
F5 = F1 | MButton, // 0x00000074
F6 = F5 | LButton, // 0x00000075
F7 = F5 | RButton, // 0x00000076
F8 = F7 | LButton, // 0x00000077
F9 = F1 | Back, // 0x00000078
F10 = F9 | LButton, // 0x00000079
F11 = F9 | RButton, // 0x0000007A
F12 = F11 | LButton, // 0x0000007B
F13 = F9 | MButton, // 0x0000007C
F14 = F13 | LButton, // 0x0000007D
F15 = F13 | RButton, // 0x0000007E
F16 = F15 | LButton, // 0x0000007F
F17 = 128, // 0x00000080
F18 = F17 | LButton, // 0x00000081
F19 = F17 | RButton, // 0x00000082
F20 = F19 | LButton, // 0x00000083
F21 = F17 | MButton, // 0x00000084
F22 = F21 | LButton, // 0x00000085
F23 = F21 | RButton, // 0x00000086
F24 = F23 | LButton, // 0x00000087
NumLock = F17 | ShiftKey, // 0x00000090
Scroll = NumLock | LButton, // 0x00000091
LShiftKey = F17 | Space, // 0x000000A0
RShiftKey = LShiftKey | LButton, // 0x000000A1
LControlKey = LShiftKey | RButton, // 0x000000A2
RControlKey = LControlKey | LButton, // 0x000000A3
LMenu = LShiftKey | MButton, // 0x000000A4
RMenu = LMenu | LButton, // 0x000000A5
BrowserBack = LMenu | RButton, // 0x000000A6
BrowserForward = BrowserBack | LButton, // 0x000000A7
BrowserRefresh = LShiftKey | Back, // 0x000000A8
BrowserStop = BrowserRefresh | LButton, // 0x000000A9
BrowserSearch = BrowserRefresh | RButton, // 0x000000AA
BrowserFavorites = BrowserSearch | LButton, // 0x000000AB
BrowserHome = BrowserRefresh | MButton, // 0x000000AC
VolumeMute = BrowserHome | LButton, // 0x000000AD
VolumeDown = BrowserHome | RButton, // 0x000000AE
VolumeUp = VolumeDown | LButton, // 0x000000AF
MediaNextTrack = LShiftKey | ShiftKey, // 0x000000B0
MediaPreviousTrack = MediaNextTrack | LButton, // 0x000000B1
MediaStop = MediaNextTrack | RButton, // 0x000000B2
MediaPlayPause = MediaStop | LButton, // 0x000000B3
LaunchMail = MediaNextTrack | MButton, // 0x000000B4
SelectMedia = LaunchMail | LButton, // 0x000000B5
LaunchApplication1 = LaunchMail | RButton, // 0x000000B6
LaunchApplication2 = LaunchApplication1 | LButton, // 0x000000B7
OemSemicolon = MediaStop | Back, // 0x000000BA
Oem1 = OemSemicolon, // 0x000000BA
Oemplus = Oem1 | LButton, // 0x000000BB
Oemcomma = LaunchMail | Back, // 0x000000BC
OemMinus = Oemcomma | LButton, // 0x000000BD
OemPeriod = Oemcomma | RButton, // 0x000000BE
OemQuestion = OemPeriod | LButton, // 0x000000BF
Oem2 = OemQuestion, // 0x000000BF
Oemtilde = 192, // 0x000000C0
Oem3 = Oemtilde, // 0x000000C0
OemOpenBrackets = Oem3 | Escape, // 0x000000DB
Oem4 = OemOpenBrackets, // 0x000000DB
OemPipe = Oem3 | IMEConvert, // 0x000000DC
Oem5 = OemPipe, // 0x000000DC
OemCloseBrackets = Oem5 | LButton, // 0x000000DD
Oem6 = OemCloseBrackets, // 0x000000DD
OemQuotes = Oem5 | RButton, // 0x000000DE
Oem7 = OemQuotes, // 0x000000DE
Oem8 = Oem7 | LButton, // 0x000000DF
OemBackslash = Oem3 | PageDown, // 0x000000E2
Oem102 = OemBackslash, // 0x000000E2
ProcessKey = Oem3 | Left, // 0x000000E5
Packet = ProcessKey | RButton, // 0x000000E7
Attn = Oem102 | CapsLock, // 0x000000F6
Crsel = Attn | LButton, // 0x000000F7
Exsel = Oem3 | D8, // 0x000000F8
EraseEof = Exsel | LButton, // 0x000000F9
Play = Exsel | RButton, // 0x000000FA
Zoom = Play | LButton, // 0x000000FB
NoName = Exsel | MButton, // 0x000000FC
Pa1 = NoName | LButton, // 0x000000FD
OemClear = NoName | RButton, // 0x000000FE
Shift = 65536, // 0x00010000
Control = 131072, // 0x00020000
Alt = 262144, // 0x00040000
}
https://blog.csdn.net/u012391923/article/details/52920316
