易语言虚拟键盘源码
系统结构:初始化键代码数组,加入键代码数组,输出键代码,查看键盘布局,键盘钩子_安装,键盘钩子_卸载,KeyboardProc,IsHotKey,SetWindowsHookEx,GetModuleHandle,GetCurrentThread,GetCurrentThreadId,CallNextHookEx,UnhookWindowsHookEx,GetKeyNameText,GetKeyState,ShellAbout,ShellExecute,
======窗口程序集_启动窗口
| |
| |------ __启动窗口_创建完毕
| |
| |------ __启动窗口_将被销毁
| |
| |------ __启动窗口_尺寸被改变
| |
| |------ 初始化键代码数组
| |
| |------ 加入键代码数组
| |
| |------ 输出键代码
| |
| |------ _按钮_ESC_被单击
| |
| |------ _菜单_退出_被选择
| |
| |------ 查看键盘布局
| |
| |------ _菜单_精简_被选择
| |
| |------ _菜单_标准_被选择
| |
| |------ _菜单_完整_被选择
| |
| |------ _菜单_多媒体按键_被选择
| |
| |------ _菜单_关于_被选择
| |
| |------ _菜单_作者网站_被选择
| |
| |
======键盘钩子程序集
| |
| |------ 键盘钩子_安装
| |
| |------ 键盘钩子_卸载
| |
| |------ KeyboardProc
| |
| |------ IsHotKey
| |
| |
======调用的Dll
| |
| |---[dll]------ SetWindowsHookEx
| |
| |---[dll]------ GetModuleHandle
| |
| |---[dll]------ GetCurrentThread
| |
| |---[dll]------ GetCurrentThreadId
| |
| |---[dll]------ CallNextHookEx
| |
| |---[dll]------ UnhookWindowsHookEx
| |
| |---[dll]------ GetKeyNameText
| |
| |---[dll]------ GetKeyState
| |
| |---[dll]------ ShellAbout
| |
| |---[dll]------ ShellExecute
调用的DLL命令:
.DLL命令 SetWindowsHookEx, 整数型, "user32", "SetWindowsHookExA", , 安装钩子过程
.参数 idHook, 整数型
.参数 lpfn, 整数型
.参数 hmod, 整数型
.参数 dwThreadId, 整数型
.DLL命令 GetModuleHandle, 整数型, "kernel32", "GetModuleHandleA", , 获取一个应用程序或动态链接库的模块句柄 如执行成功成功,则返回模块句柄。零表示失败。会设置GetLastError
.参数 lpModuleName, 文本型, , 指定模块名,这通常是与模块的文件名相同的一个名字。例如,NOTEPAD.EXE程序的模块文件名就叫作NOTEPAD;
.DLL命令 GetCurrentThread, 整数型, "kernel32", "GetCurrentThread", , 获取当前线程的一个伪句柄 当前线程的伪句柄
.DLL命令 GetCurrentThreadId, 整数型, "kernel32", "GetCurrentThreadId", , 获取当前线程一个唯一的线程标识符 当前的线程标识符
.DLL命令 CallNextHookEx, 整数型, "user32", "CallNextHookEx", , 调中链中的下一个挂钩过程
.参数 hHook, 整数型
.参数 ncode, 整数型
.参数 wParam, 整数型
.参数 lParam, 整数型
.DLL命令 UnhookWindowsHookEx, 整数型, "user32", "UnhookWindowsHookEx", , 从钩子链中删除函数
.参数 hHook, 整数型
.DLL命令 GetKeyNameText, 整数型, "user32", "GetKeyNameTextA", , 在给出扫描码的前提下,判断键名 lpBuffer中载入的键名的实际长度
.参数 lParam, 整数型, , 位0到5=0;位16到23=按键的扫描码;位24=增强型键盘上的扩展位;位25=如设为1,表示忽略左右Shift和Ctrl键的区别
.参数 lpBuffer, 文本型, , 字串预先初始化成至少nSize+1字节,以便随同键名载入
.参数 nSize, 整数型, , 字串的最大长度;
.DLL命令 GetKeyState, 整数型, "user32", "GetKeyState", , 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态 如开关键打开,则位0设为1(开关键包括CapsLock, ; NumLock,ScrollLock);如某个键当时正处于按下状态,则位15为1;如已经抬起,则为0
.参数 nVirtKey, 整数型, , 欲测试的虚拟键键码。对字母、数字字符(A-Z、a-z、0-9),用它们实际的ASCII值;
.DLL命令 ShellAbout, 整数型, "shell32.dll", "ShellAboutA", , 显示SHELLABOUT对话框
.参数 hwnd, 整数型
.参数 szApp, 文本型
.参数 szOtherStuff, 文本型
.参数 hIcon, 整数型
.DLL命令 ShellExecute, 整数型, "shell32.dll", "ShellExecuteA", , ; 查找与指定文件关联在一起的程序的文件名 非零表示成功,零表示失败。会设置GetLastError
.参数 hwnd, 整数型, , 指定一个窗口的句柄,有时候,windows程序有必要在创建自己的主窗口前显示一个消息框
.参数 lpOperation, 文本型, , 指定字串“open”来打开lpFlie文档,或指定“Print”来打印它
.参数 lpFile, 文本型, , 想用关联程序打印或打开一个程序名或文件名
.参数 lpParameters, 文本型, , 如lpszFlie是可执行文件,则这个字串包含传递给执行程序的参数
.参数 lpDirectory, 文本型, , 想使用的完整路径
.参数 nShowCmd, 整数型, , 定义了如何显示启动程序的常数值。参考ShowWindow函数的nCmdShow参数;
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。