折叠全部 展开全部
Win-10.0.22621.0 Quicker-1.44.13.0 动作ID:32e3bd82-843d-47b3-bffd-af542bba2932 来源动作: v0
Log文件路径:C:\Users\Administrator\AppData\Local\Temp\quicker_闹钟待完善_081212-538_log.html 定位文件 复制文件 上传并复制网址
开始执行动作:闹钟待完善 2025-06-27 20:12:12
10动作初始化
- +
120多字段表单编辑动作变量的值 填写表单
[in]取消后停止【值/表达式】True
[in]工作模式【值/表达式】variables
[in]表单定义【值/表达式】{"Fields":[{"FieldKey":"Hour","DictVarType":null,"Label":"Hour","HelpText":"","HelpLink":null,"InputMethod":7,"SelectionItems":"","IsRequired":true,"MinValue":"0","MaxValue":"24","Pattern":"","InputWidth":"","MaxLength":0,"ImeState":null,"TextTools":"","ExtraSettings":"","VisibleExpression":"","DefaultValue":null,"ColumnWidth":0.0,"OnlyDate":false,"ReadOnly":false,"Group":""},{"FieldKey":"Minute","DictVarType":null,"Label":"Minute","HelpText":"","HelpLink":null,"InputMethod":7,"SelectionItems":"","IsRequired":true,"MinValue":"0","MaxValue":"60","Pattern":"","InputWidth":"","MaxLength":0,"ImeState":null,"TextTools":"","ExtraSettings":"","VisibleExpression":"","DefaultValue":null,"ColumnWidth":0.0,"OnlyDate":false,"ReadOnly":false,"Group":""}]}
[in]窗口标题【值/表达式】填写表单
[in]提示文字【值/表达式】
[in]帮助按钮内容【值/表达式】
[in]恢复活动窗口【值/表达式】False
[in]标题列宽度【值/表达式】100
[in]窗口宽度【值/表达式】500
[in]输入框默认宽度【值/表达式】0
[in]窗口最大高度【值/表达式】0
[in]置顶显示【值/表达式】False
[in]自定义“确定”按钮标题【值/表达式】
[in]自定义按钮【值/表达式】
[in]关闭Enter提交表单功能【值/表达式】False
[in]选择的分组【值/表达式】
[in]窗口位置类型【值/表达式】CenterScreen
[in]位置【值/表达式】
[out]=>Hour20
[out]=>Minute13
耗时:7311ms
73221运行C#代码
[in]失败后停止【值/表达式】False
[in]运行模式【值/表达式】normal_roslyn
[in]脚本内容【值/表达式】using System;\r\n
using System.Threading.Tasks;\r\n
using System.Windows.Forms;\r\n
\r\n
public static class AlarmScript\r\n
{\r\n
public static string Exec(Quicker.Public.IStepContext context)\r\n
{\r\n
int hour = 9; // 默认小时\r\n
int minute = 0; // 默认分钟\r\n
\r\n
try\r\n
{\r\n
object varHour = context.GetVarValue("Hour");\r\n
object varMinute = context.GetVarValue("Minute");\r\n
\r\n
if (varHour == null || varMinute == null)\r\n
throw new Exception("输入为空");\r\n
\r\n
hour = Convert.ToInt32(varHour);\r\n
minute = Convert.ToInt32(varMinute);\r\n
}\r\n
catch (Exception ex)\r\n
{\r\n
MessageBox.Show("请确保 Hour 和 Minute 是有效的数字", "⏰ 输入错误", MessageBoxButtons.OK, MessageBoxIcon.Error);\r\n
return $"错误: {ex.Message}";\r\n
}\r\n
\r\n
DateTime alarmTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, hour, minute, 0);\r\n
\r\n
if (alarmTime < DateTime.Now)\r\n
{\r\n
alarmTime = alarmTime.AddDays(1);\r\n
}\r\n
\r\n
MessageBox.Show($"闹钟已设定,将在 {alarmTime:HH:mm:ss} 提醒", "⏰ 闹钟设定成功", MessageBoxButtons.OK, MessageBoxIcon.Information);\r\n
\r\n
// 启动后台任务监听时间\r\n
Task.Run(() => MonitorAlarm(context, alarmTime));\r\n
\r\n
return "闹钟已启动";\r\n
}\r\n
\r\n
private static void MonitorAlarm(Quicker.Public.IStepContext context, DateTime alarmTime)\r\n
{\r\n
while (DateTime.Now < alarmTime)\r\n
{\r\n
Task.Delay(500).Wait(); // 每半秒检查一次\r\n
}\r\n
\r\n
try\r\n
{\r\n
// 使用 Form.Invoke 来切换到 UI 线程执行弹窗操作\r\n
using (Form dummyForm = new Form())\r\n
{\r\n
dummyForm.Invoke((MethodInvoker)delegate\r\n
{\r\n
MessageBox.Show("⏰ 闹钟响了!你设定的时间到了!", "⏰ 闹钟提醒", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);\r\n
Console.Beep(800, 1000); // 蜂鸣声提醒\r\n
});\r\n
}\r\n
\r\n
context.SetVarValue("AlarmTriggered", "True");\r\n
}\r\n
catch (Exception ex)\r\n
{\r\n
context.SetVarValue("AlarmError", ex.Message);\r\n
}\r\n
}\r\n
}\r\n
[in]执行线程【值/表达式】ui
[in]引用DLL库【值/表达式】
使用缓存的程序集:C:\Users\Administrator\AppData\Local\Temp\quicker_cs\1.44.13.0\F59F0A81FD3C0EAA1246ACAAB1369294.dll
耗时:1372ms
动作结束。耗时:8698.9527ms
最新发布