键盘输入字符
本帖最后由 109691180 于 2026-5-15 16:54 编辑<火山程序 类型 = "通常" 版本 = 1 />
方法 键盘输入字符
参数 句柄 <类型 = 变整数>
参数 一行 <类型 = 文本型>
{
变量 长度 <类型 = 整数>
变量 键字符 <类型 = 字符 注释 = "按键码">
变量 i <类型 = 整数>
长度 = 取文本长度 (一行)
// 调试输出 (一行)
循环 (, 长度, i)
{
键字符 = 取字符 (一行, i)
// 调试输出 (键字符, (整数)键字符)
键盘_消息 (句柄, (整数)键字符, 5, 假)
}
// A 65
// 计次循环 (26)
{
// 调试输出 (取字符 ("ABCDEFGHIJKLMNOPQRSTUVWXYZ", 取循环索引 ()))
// 调试输出 ((整数)取字符 ("ABCDEFGHIJKLMNOPQRSTUVWXYZ", 取循环索引 ()))
}
// (字符)65
// (整数)A
// 字母或数字键 键控代码 ASCII 键控代码
// A 65 65
// B 66 66
// C 67 67
// D 68 68
}
<火山程序 类型 = "通常" 版本 = 1 />
方法 窗口_可后台逐字输入 <公开 注释 = "窗口后台 单个宽字符输入">
参数 窗口句柄 <类型 = 变整数 注释 = "要将文本发送到的窗口句柄" "">
参数 字符文本 <类型 = 文本型 注释 = "后台 单个宽字符输入" "">
{
常量 WM_SETTEXT <类型 = 整数 值 = 0x000C>
常量 WM_CHAR <类型 = 整数 值 = 0x0102>
变量 单字符 <类型 = 字符 注释 = "Unicode">
变量 i <类型 = 整数>
循环 (, 取文本长度 (字符文本), i)
{
单字符 = 取字符 (字符文本, i)
@ SendMessage((HWND)@<窗口句柄>,WM_CHAR,(WPARAM)@<单字符>,0);
@ Sleep(15);
}
}
本帖最后由 109691180 于 2026-5-15 16:06 编辑
<火山程序 类型 = "通常" 版本 = 1 />
方法 取现在年龄_数 <类型 = 整数 注释 = "2026" 折叠>
参数 身份证1 <类型 = 文本型>
{
变量 出生时间 <类型 = 小数>
变量 当前时间 <类型 = 小数>
变量 年龄 <类型 = 整数>
// 1. 验证身份证
如果 (身份证1 != "" && 取文本长度 (身份证1) == 18)
{
// 2. 从身份证提取 8位出生日期(19900101)
// 3. 使用你提供的 到时间() 方法转换为日期
出生时间 = 时间操作类.到时间 (取文本中间 (身份证1, 6, 8), 真)
// 判断是否转换失败
如果 (时间操作类.为最小时间 (出生时间))
{
调试信息框 ("身份证日期格式错误!")
返回 (0)
}
当前时间 = 时间操作类.取现行时间 ()
// 4. 计算年龄
年龄 = 时间操作类.取年份 (当前时间) - 时间操作类.取年份 (出生时间)
// 5. 生日未过 → 减1岁(精准计算)
如果 (时间操作类.取月份 (当前时间) < 时间操作类.取月份 (出生时间))
{
年龄 = 年龄 - 1
}
否则 (时间操作类.取月份 (当前时间) == 时间操作类.取月份 (出生时间) && 时间操作类.取日 (当前时间) < 时间操作类.取日 (出生时间))
{
年龄 = 年龄 - 1
}
}
否则
{
调试信息框 ("身份证格式错误:" + 身份证1)
返回 (0)
}
返回 (年龄)
}
<火山程序 类型 = "通常" 版本 = 1 />
方法 取现在年龄_数 <类型 = 整数 注释 = "2026" 折叠>
参数 身份证1 <类型 = 文本型>
{
变量 出生时间 <类型 = 小数>
变量 当前时间 <类型 = 小数>
变量 年龄 <类型 = 整数>
// 1. 验证身份证
如果 (身份证1 != "" && 取文本长度 (身份证1) == 18)
{
// 2. 从身份证提取 8位出生日期(19900101)
// 3. 使用你提供的 到时间() 方法转换为日期
出生时间 = 时间操作类.到时间 (取文本中间 (身份证1, 6, 8), 真)
// 判断是否转换失败
如果 (时间操作类.为最小时间 (出生时间))
{
调试信息框 ("身份证日期格式错误!")
返回 (0)
}
当前时间 = 时间操作类.取现行时间 ()
// 4. 计算年龄
年龄 = 时间操作类.取年份 (当前时间) - 时间操作类.取年份 (出生时间)
// 5. 生日未过 → 减1岁(精准计算)
如果 (时间操作类.取月份 (当前时间) < 时间操作类.取月份 (出生时间))
{
年龄 = 年龄 - 1
}
否则 (时间操作类.取月份 (当前时间) == 时间操作类.取月份 (出生时间) && 时间操作类.取日 (当前时间) < 时间操作类.取日 (出生时间))
{
年龄 = 年龄 - 1
}
}
否则
{
调试信息框 ("身份证格式错误:" + 身份证1)
返回 (0)
}
返回 (年龄)
}
取程序 ().主窗口对象.编辑框1.调整层次 (组件层次.最高层)
页:
[1]