运行这个动作提示错误

使用问题 · 223 次浏览
回复内容
LienSen 2026-07-07 01:48
#1

先右键设置完对应规则再运行,就正常了。先暂时这么用吧,后边我再优化修改下

GM-J 回复 LienSen 2026-07-07 09:46 :

我就是右键设置完了保存后点这个动作就提示错误,双击设置的按键也是没反应,不知道什么情况

LienSen 回复 GM-J 27天17小时前 :

重构了,可以重新试下

GM-J 回复 LienSen 27天17小时前 :

刚更新完试了下没报错了完全正常,这就好用了。感谢大佬!👍

GM-J 回复 LienSen 27天13小时前 :

能否多加个打开文件夹选项?

GM-J 回复 LienSen 27天13小时前 :

触发目标类型这里

LienSen 回复 GM-J 27天13小时前 :

直接使用打开文件类型即可,输入文件夹路径,触发后就是打开文件夹了

GM-J 回复 LienSen 27天13小时前 :

好的,按你说的设置可以了

GM-J 回复 LienSen 27天13小时前 :
为什么设置字母A-Z键的话,单击就会打开,设置的F1-F12键就不会,双击才会打开
LienSen 回复 GM-J 27天13小时前 :
我试了没这个BUG,是不是你的输入法有BUG?切换输入法、英文、大写等情况试下。如果测试了还是会的话,到这个网站测试下你的字母键是否有双击的情况https://cps-check.com/cn/double-click-keyboard
GM-J 回复 LienSen 27天12小时前 :

我台式电脑搜狗输入法和自带的输入法只要设置了字母键的都会单击打开,输入法和英文,大小写试了都会,不知道什么原因,在 https://cps-check.com/cn/double-click-keyboard 这个网站测试了,只要没设置的字母键都不会按一下按键会双击,要是设置了的字母键和字母上面那一排数字键都会单击变成双击。。

LienSen 回复 GM-J 27天12小时前 :

那就奇怪了。你使用调试运行,用字母键单击触发一下,然后停止动作,把调试文件发我看看

GM-J 回复 LienSen 27天12小时前 :

你看下,就下面这个

LienSen 回复 GM-J 27天11小时前 :

重新更新了一个版本,新增了按键拦截功能,可以试下看看。字母和数字双击的问题,你重新试下看看。如果还是有的话,我再尝试加个防抖看看

GM-J 回复 LienSen 27天11小时前 :

用家里的笔记本电脑试了还是会单击就触发,

LienSen 回复 GM-J 27天11小时前 :

哪个版本的?1还是2?把动作数据删除了再重新试下

GM-J 回复 LienSen 27天10小时前 :

版本1,把原来的动作删掉重新安装了最新动作不会单击触发了,

GM-J 回复 LienSen 27天10小时前 :

有个问题就是电脑休眠唤醒后,双击失效了,要再次运行动作双击按键才有效。

GM-J 回复 LienSen 27天10小时前 :

动作运行久了双击也会失效,也要再次运行才行。

GM-J 回复 LienSen 27天10小时前 :

动作运行6分钟左右之后会失效

LienSen 回复 GM-J 27天9小时前 :

感觉可能是你的电脑系统的问题,我这边测试休眠后唤醒也是正常的。动作运行了一个多小时了,也依旧是正常的

GM-J 回复 LienSen 27天9小时前 :

不知道啊,系统Win11 25H2   ,现在发现不是动作运行久了失效,是字母和数字键要三击才有效,F1-F12 双击是有效的, ̄□ ̄||

GM-J 回复 LienSen 26天22小时前 :

家里的笔记本和公司的台式电脑休眠后字母键和数字键都要3击才能打开,双击不行,要3击

LienSen 回复 GM-J 6天11小时前 :

你的quicker版本是什么?2.0的?我是使用的1.45的,我公司的同事用我这个动作也都是正常的。我公司电脑和家里电脑也都是正常的。

GM-J 回复 LienSen 5天13小时前 :

用的是1.41.5的版本,不知道为什么我的数字和字母键要多按一下才行,F1-F12就不会,奇怪

GM-J 回复 LienSen 5天13小时前 :

是电脑休眠后,唤醒电脑之后,这个动作数字和字母键要3击才会运行,F1-F12键是正常 的,电脑没休眠前数字和字母键双击是可以的

LienSen 回复 GM-J 5天12小时前 :

重新更新了一版,你试试看有没有效果吧。你这个休眠后重新唤醒的情况,我这边也复现不出来。

GM-J 27天12小时前
#2
Win-10.0.22000.0 Quicker-1.41.5.0 动作ID:370aad68-33ab-455e-96b8-68e0313a2e0c 来源动作:2fa288c5-1b10-45c9-8126-08ded76a8b69 v1
Log文件路径:C:\Users\Administrator\AppData\Local\Temp\quicker_超级双击按键_081224-823_log.html 定位文件 复制文件 上传并复制网址
开始执行动作:超级双击按键 2026-07-20 20:12:24
1动作初始化
10状态存取注入右键设置菜单
[in]操作类型【值/表达式】UpdateContextMenu
[in]名称【无输入】
[in]附加的右键菜单项【值/表达式】[fa:Solid_Cog:#999999]动作高级设置|settings
耗时:0ms
11状态存取从磁盘强制读取配置(彻底修复旧版SaveState假保存BUG)
[in]操作类型【值/表达式】readActionState
[in]名称【值/表达式】Double_Click_Rules_Saved
[out]值=>MyRulesText164|LMenu|Path|E%3A%5C%E5%B7%A5%E4%BD%9C%E9%A1%B9%E7%9B%AE|600|True|True|\n 67|C|Action|O%E8%BD%AE%E7%9B%98O|400|True|True|
耗时:0ms
12拆分文本为列表将文本转为规则列表
[in]输入【变量 MyRulesText】164|LMenu|Path|E%3A%5C%E5%B7%A5%E4%BD%9C%E9%A1%B9%E7%9B%AE|600|True|True|\n 67|C|Action|O%E8%BD%AE%E7%9B%98O|400|True|True|
[in]分隔【值/表达式】\n
[in]滤除空值【值/表达式】True
[in]转义分隔符【值/表达式】True
[out]结果=>rulesList0:164|LMenu|Path|E%3A%5C%E5%B7%A5%E4%BD%9C%E9%A1%B9%E7%9B%AE|600|True|True| 1:67|C|Action|O%E8%BD%AE%E7%9B%98O|400|True|True|
耗时:0ms
13如果/否则主运行逻辑(后台无感监听进程挂载与派发)
[in]如果【值/表达式】False
执行 False 分支, 共 11 步骤
53.2运行或停止动作确保后台只有唯一主进程
[in]失败后停止【值/表达式】False
[in]类型【值/表达式】StopOtherInstance
停止的动作数量:1
耗时:0ms
53.3状态存取挂载时也从磁盘强制读取一次
[in]操作类型【值/表达式】readActionState
[in]名称【值/表达式】Double_Click_Rules_Saved
[out]值=>MyRulesText164|LMenu|Path|E%3A%5C%E5%B7%A5%E4%BD%9C%E9%A1%B9%E7%9B%AE|600|True|True|\n 67|C|Action|O%E8%BD%AE%E7%9B%98O|400|True|True|
耗时:0ms
53.4拆分文本为列表还原List
[in]输入【变量 MyRulesText】164|LMenu|Path|E%3A%5C%E5%B7%A5%E4%BD%9C%E9%A1%B9%E7%9B%AE|600|True|True|\n 67|C|Action|O%E8%BD%AE%E7%9B%98O|400|True|True|
[in]分隔【值/表达式】\n
[in]滤除空值【值/表达式】True
[in]转义分隔符【值/表达式】True
[out]结果=>rulesList0:164|LMenu|Path|E%3A%5C%E5%B7%A5%E4%BD%9C%E9%A1%B9%E7%9B%AE|600|True|True| 1:67|C|Action|O%E8%BD%AE%E7%9B%98O|400|True|True|
耗时:0ms
63.5如果/否则拦截空规则
[in]如果【值/表达式】False
执行 False 分支, 共 0 步骤
63.6赋值生成IPC通信文件路径
[in]失败后停止【无输入】True
[in]输入【值/表达式】[略]
[out]输出=>ipcPathC:\Users\Administrator\AppData\Local\Temp\quicker_dc_ipc.txt
耗时:0ms
73.7提取文件路径信息/生成路径提取文件路径信息 {ipcPath}
[in]失败后停止【无输入】True
[in]操作类型【值/表达式】getInfo
[in]路径【变量 ipcPath】C:\Users\Administrator\AppData\Local\Temp\quicker_dc_ipc.txt
[out]文件名=>ipcFilequicker_dc_ipc.txt
[out]所在文件夹路径=>ipcFolderC:\Users\Administrator\AppData\Local\Temp
耗时:0ms
73.8文件和目录操作确保IPC文件存在
[in]失败后中止动作【值/表达式】False
[in]操作类型【值/表达式】createFile
[in]路径【变量 ipcPath】C:\Users\Administrator\AppData\Local\Temp\quicker_dc_ipc.txt
[in]目标路径/名称【无输入】
[in]覆盖已有【无输入】False
步骤(sys:fileOperation)执行失败,原因:文件已存在:C:\Users\Administrator\AppData\Local\Temp\quicker_dc_ipc.txt
耗时:1ms
73.9赋值准备传给C#的配置参数
[in]失败后停止【无输入】True
[in]输入【值/表达式】[略]
[out]输出=>csParamC:\Users\Administrator\AppData\Local\Temp\quicker_dc_ipc.txt|||
耗时:0ms
73.10每个合并多条规则给底层C#引擎
[in]失败后停止【无输入】True
[in]列表【变量 rulesList】0:164|LMenu|Path|E%3A%5C%E5%B7%A5%E4%BD%9C%E9%A1%B9%E7%9B%AE|600|True|True| 1:67|C|Action|O%E8%BD%AE%E7%9B%98O|400|True|True|
[in]线程模式【无输入】0
[in]线程启动间隔【无输入】5
7第 0 次循环,项的值:164|LMenu|Path|E%3A%5C%E5%B7%A5%E4%BD%9C%E9%A1%B9%E7%9B%AE|600|True|True|
[out]项=>ruleString164|LMenu|Path|E%3A%5C%E5%B7%A5%E4%BD%9C%E9%A1%B9%E7%9B%AE|600|True|True|
73.10.0赋值$= {csParam} + {ruleString} + ";" => {csParam}
[in]失败后停止【无输入】True
[in]输入【值/表达式】[略]
[out]输出=>csParamC:\Users\Administrator\AppData\Local\Temp\quicker_dc_ipc.txt|||164|LMenu|Path|E%3A%5C%E5%B7%A5%E4%BD%9C%E9%A1%B9%E7%9B%AE|600|True|True|;
耗时:1ms
8第 1 次循环,项的值:67|C|Action|O%E8%BD%AE%E7%9B%98O|400|True|True|
[out]项=>ruleString67|C|Action|O%E8%BD%AE%E7%9B%98O|400|True|True|
83.10.0赋值$= {csParam} + {ruleString} + ";" => {csParam}
[in]失败后停止【无输入】True
[in]输入【值/表达式】[略]
[out]输出=>csParamC:\Users\Administrator\AppData\Local\Temp\quicker_dc_ipc.txt|||164|LMenu|Path|E%3A%5C%E5%B7%A5%E4%BD%9C%E9%A1%B9%E7%9B%AE|600|True|True|;67|C|Action|O%E8%BD%AE%E7%9B%98O|400|True|True|;
耗时:0ms
83.11运行C#代码在后台执行C#原生键盘钩子进程(不等待返回,主进程继续)
[in]失败后停止【值/表达式】True
[in]运行模式【值/表达式】low_permission_roslyn
[in]脚本内容【无输入】//.cs 文件类型,便于外部编辑时使用\r\n // 引用必要的命名空间\r\n using System.Windows.Forms;\r\n \r\n // Quicker将会调用的函数。可以根据需要修改返回值类型。\r\n public static void Exec(Quicker.Public.IStepContext context)\r\n {\r\n //var oldValue = context.GetVarValue("varName"); // 读取动作里的变量值\r\n //MessageBox.Show(oldValue as string);\r\n //context.SetVarValue("varName", "从脚本输出的内容。"); // 向变量里输出值\r\n MessageBox.Show("Hello World!");\r\n }\r\n
[in]执行线程【无输入】auto
[in]脚本内容【值/表达式】//.cs\r\n using System;\r\n using System.Diagnostics;\r\n using System.Runtime.InteropServices;\r\n using System.Windows.Forms;\r\n using System.Collections.Generic;\r\n using System.IO;\r\n using System.Threading;\r\n using System.Linq;\r\n \r\n public static class Program \r\n {\r\n private const int WH_KEYBOARD_LL = 13;\r\n private const int WM_KEYDOWN = 0x0100;\r\n private const int WM_SYSKEYDOWN = 0x0104;\r\n private const int WM_KEYUP = 0x0101;\r\n private const int WM_SYSKEYUP = 0x0105;\r\n private const int WM_CLOSE = 0x0010;\r\n private static LowLevelKeyboardProc _proc = HookCallback;\r\n private static IntPtr _hookID = IntPtr.Zero;\r\n \r\n class Rule {\r\n public int VkCode;\r\n public string TargetActionId;\r\n public int Interval;\r\n public bool Notify;\r\n public bool Enabled;\r\n public string[] AppScopes;\r\n }\r\n \r\n private static List<Rule> rules = new List<Rule>();\r\n private static Dictionary<int, long> lastTick = new Dictionary<int, long>();\r\n private static Dictionary<int, bool> isPressed = new Dictionary<int, bool>();\r\n private static string ipcFilePath = "";\r\n \r\n [DllImport("user32.dll", SetLastError = true)]\r\n static extern IntPtr FindWindow(string lpClassName, string lpWindowName);\r\n [DllImport("user32.dll", CharSet = CharSet.Auto)]\r\n static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);\r\n [DllImport("user32.dll")]\r\n private static extern IntPtr GetForegroundWindow();\r\n [DllImport("user32.dll")]\r\n private static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwProcessId);\r\n \r\n private static string GetForegroundProcessName() {\r\n try {\r\n IntPtr hwnd = GetForegroundWindow();\r\n if (hwnd == IntPtr.Zero) return "";\r\n GetWindowThreadProcessId(hwnd, out uint pid);\r\n Process proc = Process.GetProcessById((int)pid);\r\n return proc.ProcessName.ToLower();\r\n } catch {\r\n return "";\r\n }\r\n }\r\n \r\n public static string Exec(string paramValue) \r\n {\r\n if (string.IsNullOrWhiteSpace(paramValue)) return "";\r\n \r\n string[] mainParts = paramValue.Split(new string[]{"|||"}, StringSplitOptions.None);\r\n if(mainParts.Length < 2) return "";\r\n ipcFilePath = mainParts[0];\r\n \r\n string[] lines = mainParts[1].Split(new string[]{";"}, StringSplitOptions.RemoveEmptyEntries);\r\n foreach(var line in lines) {\r\n string[] parts = line.Split('|');\r\n if (parts.Length >= 7) {\r\n bool enabled = false;\r\n bool.TryParse(parts[6], out enabled);\r\n if(!enabled) continue;\r\n \r\n int vk = int.Parse(parts[0]);\r\n rules.Add(new Rule {\r\n VkCode = vk,\r\n TargetActionId = parts[2],\r\n Interval = int.Parse(parts[4]),\r\n Notify = bool.Parse(parts[5]),\r\n Enabled = enabled,\r\n AppScopes = parts.Length > 7 ? parts[7].ToLower().Split(new char[]{','}, StringSplitOptions.RemoveEmptyEntries).Select(s => s.Trim()).ToArray() : new string[0]\r\n });\r\n lastTick[vk] = 0;\r\n isPressed[vk] = false;\r\n }\r\n }\r\n \r\n // 杀掉各种可能的旧版本进程窗口\r\n string[] oldTitles = new string[] {\r\n "Quicker_DoubleClick_Hook_Form_Hidden",\r\n "Quicker_DoubleClick_Hook_Form_Hidden_V2",\r\n "Quicker_DoubleClick_Hook_Form_Hidden_V3",\r\n "Quicker_DoubleClick_Hook_Form_Hidden_V4",\r\n "Quicker_DoubleClick_Hook_Form_Hidden_V5",\r\n "Quicker_DoubleClick_Hook_Form_Hidden_V8",\r\n "Quicker_DoubleClick_Hook_Form_Hidden_V9",\r\n "Quicker_DoubleClick_Hook_Form_Hidden_V10",\r\n "Quicker_DoubleClick_Hook_Form_Hidden_V11",\r\n "Quicker_DoubleClick_Hook_Form_Hidden_V12",\r\n "Quicker_DoubleClick_Hook_Form_Hidden_Final"\r\n };\r\n foreach(var t in oldTitles) {\r\n IntPtr oldHwnd = FindWindow(null, t);\r\n while(oldHwnd != IntPtr.Zero) {\r\n SendMessage(oldHwnd, WM_CLOSE, IntPtr.Zero, IntPtr.Zero);\r\n Thread.Sleep(50);\r\n oldHwnd = FindWindow(null, t);\r\n }\r\n }\r\n \r\n string formTitle = "Quicker_DoubleClick_Hook_Form_Hidden_Final";\r\n Form hiddenForm = new Form();\r\n hiddenForm.Text = formTitle;\r\n hiddenForm.WindowState = FormWindowState.Minimized;\r\n hiddenForm.ShowInTaskbar = false;\r\n hiddenForm.Opacity = 0;\r\n \r\n // 不执行 Show,直接强行提取 Handle,完全零焦点占用\r\n IntPtr dummyHwnd = hiddenForm.Handle;\r\n hiddenForm.FormClosed += (s, e) => { Application.ExitThread(); };\r\n \r\n _hookID = SetHook(_proc);\r\n Application.Run();\r\n UnhookWindowsHookEx(_hookID);\r\n return "";\r\n }\r\n \r\n private delegate IntPtr LowLevelKeyboardProc(int nCode, IntPtr wParam, IntPtr lParam);\r\n \r\n private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam) \r\n {\r\n if (nCode >= 0) \r\n {\r\n int vkCode = Marshal.ReadInt32(lParam);\r\n var matchedRules = rules.Where(r => r.VkCode == vkCode && r.Enabled).ToList();\r\n if (matchedRules.Count > 0) \r\n {\r\n if (wParam == (IntPtr)WM_KEYDOWN || wParam == (IntPtr)WM_SYSKEYDOWN)\r\n {\r\n if (!isPressed.ContainsKey(vkCode) || !isPressed[vkCode])\r\n {\r\n isPressed[vkCode] = true;\r\n long currentTick = Environment.TickCount;\r\n if (!lastTick.ContainsKey(vkCode)) lastTick[vkCode] = 0;\r\n long elapsed = currentTick - lastTick[vkCode];\r\n lastTick[vkCode] = currentTick;\r\n \r\n string fgProc = GetForegroundProcessName();\r\n Rule ruleToRun = null;\r\n \r\n var specRules = matchedRules.Where(r => r.AppScopes.Length > 0).ToList();\r\n ruleToRun = specRules.FirstOrDefault(r => r.AppScopes.Contains(fgProc) || r.AppScopes.Contains(fgProc + ".exe"));\r\n \r\n if (ruleToRun == null) {\r\n ruleToRun = matchedRules.FirstOrDefault(r => r.AppScopes.Length == 0);\r\n }\r\n \r\n if (ruleToRun != null && elapsed > 0 && elapsed <= ruleToRun.Interval) \r\n {\r\n lastTick[vkCode] = 0; \r\n try {\r\n string content = vkCode.ToString() + "|" + currentTick.ToString();\r\n File.WriteAllText(ipcFilePath, content);\r\n } catch {}\r\n } \r\n }\r\n }\r\n else if (wParam == (IntPtr)WM_KEYUP || wParam == (IntPtr)WM_SYSKEYUP)\r\n {\r\n isPressed[vkCode] = false;\r\n }\r\n }\r\n }\r\n return CallNextHookEx(_hookID, nCode, wParam, lParam);\r\n }\r\n \r\n [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]\r\n private static extern IntPtr SetWindowsHookEx(int idHook, LowLevelKeyboardProc lpfn, IntPtr hMod, uint dwThreadId);\r\n \r\n [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]\r\n [return: MarshalAs(UnmanagedType.Bool)]\r\n private static extern bool UnhookWindowsHookEx(IntPtr hhk);\r\n \r\n [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]\r\n private static extern IntPtr CallNextHookEx(IntPtr hhk, int nCode, IntPtr wParam, IntPtr lParam);\r\n \r\n [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]\r\n private static extern IntPtr GetModuleHandle(string lpModuleName);\r\n \r\n private static IntPtr SetHook(LowLevelKeyboardProc proc) \r\n {\r\n using (Process curProcess = Process.GetCurrentProcess())\r\n using (ProcessModule curModule = curProcess.MainModule) {\r\n return SetWindowsHookEx(WH_KEYBOARD_LL, proc, GetModuleHandle(curModule.ModuleName), 0);\r\n }\r\n }\r\n }\r\n
[in]引用DLL库【值/表达式】System.Windows.Forms.dll\r\n System.dll\r\n System.Core.dll\r\n System.Linq.dll
[in]参数值【变量 csParam】C:\Users\Administrator\AppData\Local\Temp\quicker_dc_ipc.txt|||164|LMenu|Path|E%3A%5C%E5%B7%A5%E4%BD%9C%E9%A1%B9%E7%9B%AE|600|True|True|;67|C|Action|O%E8%BD%AE%E7%9B%98O|400|True|True|;
[in]等待返回【值/表达式】False
[in]允许缓存程序集【无输入】False
[in]最长等待时间(ms)【值/表达式】10000
耗时:3ms
113.12重复利用高效的文件阻塞等待通信(IPC),破解免费版调用限制
[in]次数【值/表达式】-1
[in]计数开始值【无输入】0
[in]循环间隔时间【无输入】1
11第 0 次循环
[in]中止条件【无输入】*NULL*
113.12.0文件系统监控主进程挂起并等待 IPC 文件变化(0 CPU 消耗)
[in]失败后停止【值/表达式】False
[in]操作类型【值/表达式】wait
[in]文件夹路径【变量 ipcFolder】C:\Users\Administrator\AppData\Local\Temp
[in]文件筛选【变量 ipcFile】quicker_dc_ipc.txt
[in]通知筛选【值/表达式】LastWrite
[in]包含子文件夹【值/表达式】False
[in]等待秒数【值/表达式】0
[in]等待的事件【值/表达式】changed
即将开始监控,事件可能同时发生,可能会导致动作log格式出错。
耗时:8294ms
83053.12.1等待时间文件缓冲
[in]等待时间【值/表达式】30
[in]等待窗口关闭时取消【无输入】False
耗时:31ms
83363.12.2读取文件读取C#钩子发送过来的指令
[in]失败后停止【值/表达式】False
[in]文件路径【变量 ipcPath】C:\Users\Administrator\AppData\Local\Temp\quicker_dc_ipc.txt
[in]格式【值/表达式】text
[in]文件编码【值/表达式】utf-8
[out]文本内容=>ipcContent67|39418859
[out]是否成功=>isSuccessTrue
耗时:0ms
83373.12.3如果/否则判断条件:$= {isSuccess} && !string.IsNullOrWhiteSpace({ipcContent}) && {ipcC...
[in]如果【值/表达式】True
执行 True 分支, 共 4 步骤
83373.12.3.0赋值防重更新机制,彻底解决双次触发 Bug!
[in]失败后停止【无输入】True
[in]输入【变量 ipcContent】[略]
[out]输出=>lastIpcContent67|39418859
耗时:0ms
83373.12.3.1拆分文本为列表{ipcContent} => {splitResult}
[in]输入【变量 ipcContent】67|39418859
[in]分隔【值/表达式】|
[in]滤除空值【无输入】True
[in]转义分隔符【无输入】False
[out]结果=>splitResult0:67 1:39418859
耗时:0ms
83373.12.3.2赋值绝对安全的类型转换
[in]失败后停止【值/表达式】False
[in]输入【值/表达式】[略]
[out]输出=>vkCode67
耗时:1ms
83383.12.3.3如果/否则判断条件:$= {vkCode} > 0
[in]如果【值/表达式】True
执行 True 分支, 共 5 步骤
83393.12.3.3.0获取前台进程信息精确获取前台进程
[in]失败后中止动作【值/表达式】False
[out]进程名=>procNamechrome
耗时:7ms
83463.12.3.3.1赋值 => {matchedRule}
[in]失败后停止【无输入】True
[in]输入【值/表达式】[略]
[out]输出=>matchedRule
耗时:0ms
83463.12.3.3.2赋值0 => {maxScore}
[in]失败后停止【无输入】True
[in]输入【值/表达式】[略]
[out]输出=>maxScore0
耗时:0ms
83463.12.3.3.3每个智能提取最佳规则
[in]失败后停止【无输入】True
[in]列表【变量 rulesList】0:164|LMenu|Path|E%3A%5C%E5%B7%A5%E4%BD%9C%E9%A1%B9%E7%9B%AE|600|True|True| 1:67|C|Action|O%E8%BD%AE%E7%9B%98O|400|True|True|
[in]线程模式【无输入】0
[in]线程启动间隔【无输入】5
8346第 0 次循环,项的值:164|LMenu|Path|E%3A%5C%E5%B7%A5%E4%BD%9C%E9%A1%B9%E7%9B%AE|600|True|True|
[out]项=>ruleString164|LMenu|Path|E%3A%5C%E5%B7%A5%E4%BD%9C%E9%A1%B9%E7%9B%AE|600|True|True|
83463.12.3.3.3.0赋值打分制规则匹配(10分精确匹配进程,1分全局保底)
[in]失败后停止【无输入】True
[in]输入【值/表达式】[略]
[out]输出=>matchedRule
耗时:2ms
8348第 1 次循环,项的值:67|C|Action|O%E8%BD%AE%E7%9B%98O|400|True|True|
[out]项=>ruleString67|C|Action|O%E8%BD%AE%E7%9B%98O|400|True|True|
83483.12.3.3.3.0赋值打分制规则匹配(10分精确匹配进程,1分全局保底)
[in]失败后停止【无输入】True
[in]输入【值/表达式】[略]
[out]输出=>matchedRule67|C|Action|O%E8%BD%AE%E7%9B%98O|400|True|True|
耗时:0ms
83483.12.3.3.4如果/否则判断条件:$= !string.IsNullOrEmpty({matchedRule})
[in]如果【值/表达式】True
执行 True 分支, 共 5 步骤
83483.12.3.3.4.0拆分文本为列表拆包最高分规则
[in]输入【变量 matchedRule】67|C|Action|O%E8%BD%AE%E7%9B%98O|400|True|True|
[in]分隔【值/表达式】|
[in]滤除空值【值/表达式】False
[in]转义分隔符【无输入】False
[out]结果=>splitResult0:67 1:C 2:Action 3:O%E8%BD%AE%E7%9B%98O 4:400 5:True 6:True 7:
耗时:0ms
83483.12.3.3.4.1赋值$={splitResult}[2] => {targetType}
[in]失败后停止【无输入】True
[in]输入【值/表达式】[略]
[out]输出=>targetTypeAction
耗时:1ms
83493.12.3.3.4.2赋值$=Uri.UnescapeDataString({splitResult}[3]??"") => {targetContent}
[in]失败后停止【无输入】True
[in]输入【值/表达式】[略]
[out]输出=>targetContentO轮盘O
耗时:1ms
83493.12.3.3.4.3如果/否则按设定分发执行类型
[in]如果【值/表达式】True
执行 True 分支, 共 1 步骤
83503.12.3.3.4.3.0运行或停止动作运行动作 {targetContent}
[in]失败后停止【值/表达式】False
[in]类型【值/表达式】StartAction
[in]等待运行结束【值/表达式】False
[in]命令参数【无输入】
[in]调试模式运行【无输入】False
[in]目标动作【变量 targetContent】O轮盘O
耗时:0ms
83503.12.3.3.4.4如果/否则根据设定决定是否通知
[in]如果【值/表达式】True
执行 True 分支, 共 1 步骤
83513.12.3.3.4.4.0提示消息$$成功触发:{targetContent}
[in]消息内容【值/表达式】成功触发:O轮盘O
[in]类型【值/表达式】Success
[in]最大行数【无输入】0
[in]风格【无输入】Default
[in]点击命令【无输入】
耗时:9ms
8368第 1 次循环
[in]中止条件【无输入】*NULL*
83683.12.0文件系统监控主进程挂起并等待 IPC 文件变化(0 CPU 消耗)
[in]失败后停止【值/表达式】False
[in]操作类型【值/表达式】wait
[in]文件夹路径【变量 ipcFolder】C:\Users\Administrator\AppData\Local\Temp
[in]文件筛选【变量 ipcFile】quicker_dc_ipc.txt
[in]通知筛选【值/表达式】LastWrite
[in]包含子文件夹【值/表达式】False
[in]等待秒数【值/表达式】0
[in]等待的事件【值/表达式】changed
即将开始监控,事件可能同时发生,可能会导致动作log格式出错。
耗时:2537ms
109053.12.1等待时间文件缓冲
[in]等待时间【值/表达式】30
[in]等待窗口关闭时取消【无输入】False
耗时:31ms
109363.12.2读取文件读取C#钩子发送过来的指令
[in]失败后停止【值/表达式】False
[in]文件路径【变量 ipcPath】C:\Users\Administrator\AppData\Local\Temp\quicker_dc_ipc.txt
[in]格式【值/表达式】text
[in]文件编码【值/表达式】utf-8
[out]文本内容=>ipcContent67|39421437
[out]是否成功=>isSuccessTrue
耗时:0ms
109373.12.3如果/否则判断条件:$= {isSuccess} && !string.IsNullOrWhiteSpace({ipcContent}) && {ipcC...
[in]如果【值/表达式】True
执行 True 分支, 共 4 步骤
109373.12.3.0赋值防重更新机制,彻底解决双次触发 Bug!
[in]失败后停止【无输入】True
[in]输入【变量 ipcContent】[略]
[out]输出=>lastIpcContent67|39421437
耗时:0ms
109373.12.3.1拆分文本为列表{ipcContent} => {splitResult}
[in]输入【变量 ipcContent】67|39421437
[in]分隔【值/表达式】|
[in]滤除空值【无输入】True
[in]转义分隔符【无输入】False
[out]结果=>splitResult0:67 1:39421437
耗时:0ms
109373.12.3.2赋值绝对安全的类型转换
[in]失败后停止【值/表达式】False
[in]输入【值/表达式】[略]
[out]输出=>vkCode67
耗时:1ms
109373.12.3.3如果/否则判断条件:$= {vkCode} > 0
[in]如果【值/表达式】True
执行 True 分支, 共 5 步骤
109373.12.3.3.0获取前台进程信息精确获取前台进程
[in]失败后中止动作【值/表达式】False
[out]进程名=>procNamechrome
耗时:10ms
109483.12.3.3.1赋值 => {matchedRule}
[in]失败后停止【无输入】True
[in]输入【值/表达式】[略]
[out]输出=>matchedRule
耗时:0ms
109483.12.3.3.2赋值0 => {maxScore}
[in]失败后停止【无输入】True
[in]输入【值/表达式】[略]
[out]输出=>maxScore0
耗时:0ms
109483.12.3.3.3每个智能提取最佳规则
[in]失败后停止【无输入】True
[in]列表【变量 rulesList】0:164|LMenu|Path|E%3A%5C%E5%B7%A5%E4%BD%9C%E9%A1%B9%E7%9B%AE|600|True|True| 1:67|C|Action|O%E8%BD%AE%E7%9B%98O|400|True|True|
[in]线程模式【无输入】0
[in]线程启动间隔【无输入】5
10948第 0 次循环,项的值:164|LMenu|Path|E%3A%5C%E5%B7%A5%E4%BD%9C%E9%A1%B9%E7%9B%AE|600|True|True|
[out]项=>ruleString164|LMenu|Path|E%3A%5C%E5%B7%A5%E4%BD%9C%E9%A1%B9%E7%9B%AE|600|True|True|
109483.12.3.3.3.0赋值打分制规则匹配(10分精确匹配进程,1分全局保底)
[in]失败后停止【无输入】True
[in]输入【值/表达式】[略]
[out]输出=>matchedRule
耗时:0ms
10948第 1 次循环,项的值:67|C|Action|O%E8%BD%AE%E7%9B%98O|400|True|True|
[out]项=>ruleString67|C|Action|O%E8%BD%AE%E7%9B%98O|400|True|True|
109483.12.3.3.3.0赋值打分制规则匹配(10分精确匹配进程,1分全局保底)
[in]失败后停止【无输入】True
[in]输入【值/表达式】[略]
[out]输出=>matchedRule67|C|Action|O%E8%BD%AE%E7%9B%98O|400|True|True|
耗时:0ms
109483.12.3.3.4如果/否则判断条件:$= !string.IsNullOrEmpty({matchedRule})
[in]如果【值/表达式】True
执行 True 分支, 共 5 步骤
109483.12.3.3.4.0拆分文本为列表拆包最高分规则
[in]输入【变量 matchedRule】67|C|Action|O%E8%BD%AE%E7%9B%98O|400|True|True|
[in]分隔【值/表达式】|
[in]滤除空值【值/表达式】False
[in]转义分隔符【无输入】False
[out]结果=>splitResult0:67 1:C 2:Action 3:O%E8%BD%AE%E7%9B%98O 4:400 5:True 6:True 7:
耗时:0ms
109483.12.3.3.4.1赋值$={splitResult}[2] => {targetType}
[in]失败后停止【无输入】True
[in]输入【值/表达式】[略]
[out]输出=>targetTypeAction
耗时:0ms
109483.12.3.3.4.2赋值$=Uri.UnescapeDataString({splitResult}[3]??"") => {targetContent}
[in]失败后停止【无输入】True
[in]输入【值/表达式】[略]
[out]输出=>targetContentO轮盘O
耗时:0ms
109483.12.3.3.4.3如果/否则按设定分发执行类型
[in]如果【值/表达式】True
执行 True 分支, 共 1 步骤
109483.12.3.3.4.3.0运行或停止动作运行动作 {targetContent}
[in]失败后停止【值/表达式】False
[in]类型【值/表达式】StartAction
[in]等待运行结束【值/表达式】False
[in]命令参数【无输入】
[in]调试模式运行【无输入】False
[in]目标动作【变量 targetContent】O轮盘O
耗时:1ms
109493.12.3.3.4.4如果/否则根据设定决定是否通知
[in]如果【值/表达式】True
执行 True 分支, 共 1 步骤
109493.12.3.3.4.4.0提示消息$$成功触发:{targetContent}
[in]消息内容【值/表达式】成功触发:O轮盘O
[in]类型【值/表达式】Success
[in]最大行数【无输入】0
[in]风格【无输入】Default
[in]点击命令【无输入】
耗时:6ms
10971第 2 次循环
[in]中止条件【无输入】*NULL*
109723.12.0文件系统监控主进程挂起并等待 IPC 文件变化(0 CPU 消耗)
[in]失败后停止【值/表达式】False
[in]操作类型【值/表达式】wait
[in]文件夹路径【变量 ipcFolder】C:\Users\Administrator\AppData\Local\Temp
[in]文件筛选【变量 ipcFile】quicker_dc_ipc.txt
[in]通知筛选【值/表达式】LastWrite
[in]包含子文件夹【值/表达式】False
[in]等待秒数【值/表达式】0
[in]等待的事件【值/表达式】changed
即将开始监控,事件可能同时发生,可能会导致动作log格式出错。
耗时:6469ms
174403.12.1等待时间文件缓冲
[in]等待时间【值/表达式】30
[in]等待窗口关闭时取消【无输入】False
耗时:31ms
174713.12.2读取文件读取C#钩子发送过来的指令
[in]失败后停止【值/表达式】False
[in]文件路径【变量 ipcPath】C:\Users\Administrator\AppData\Local\Temp\quicker_dc_ipc.txt
[in]格式【值/表达式】text
[in]文件编码【值/表达式】utf-8
[out]文本内容=>ipcContent67|39428000
[out]是否成功=>isSuccessTrue
耗时:0ms
174713.12.3如果/否则判断条件:$= {isSuccess} && !string.IsNullOrWhiteSpace({ipcContent}) && {ipcC...
[in]如果【值/表达式】True
执行 True 分支, 共 4 步骤
174713.12.3.0赋值防重更新机制,彻底解决双次触发 Bug!
[in]失败后停止【无输入】True
[in]输入【变量 ipcContent】[略]
[out]输出=>lastIpcContent67|39428000
耗时:0ms
174713.12.3.1拆分文本为列表{ipcContent} => {splitResult}
[in]输入【变量 ipcContent】67|39428000
[in]分隔【值/表达式】|
[in]滤除空值【无输入】True
[in]转义分隔符【无输入】False
[out]结果=>splitResult0:67 1:39428000
耗时:0ms
174713.12.3.2赋值绝对安全的类型转换
[in]失败后停止【值/表达式】False
[in]输入【值/表达式】[略]
[out]输出=>vkCode67
耗时:0ms
174713.12.3.3如果/否则判断条件:$= {vkCode} > 0
[in]如果【值/表达式】True
执行 True 分支, 共 5 步骤
174713.12.3.3.0获取前台进程信息精确获取前台进程
[in]失败后中止动作【值/表达式】False
[out]进程名=>procNamechrome
耗时:5ms
174763.12.3.3.1赋值 => {matchedRule}
[in]失败后停止【无输入】True
[in]输入【值/表达式】[略]
[out]输出=>matchedRule
耗时:0ms
174763.12.3.3.2赋值0 => {maxScore}
[in]失败后停止【无输入】True
[in]输入【值/表达式】[略]
[out]输出=>maxScore0
耗时:0ms
174763.12.3.3.3每个智能提取最佳规则
[in]失败后停止【无输入】True
[in]列表【变量 rulesList】0:164|LMenu|Path|E%3A%5C%E5%B7%A5%E4%BD%9C%E9%A1%B9%E7%9B%AE|600|True|True| 1:67|C|Action|O%E8%BD%AE%E7%9B%98O|400|True|True|
[in]线程模式【无输入】0
[in]线程启动间隔【无输入】5
17476第 0 次循环,项的值:164|LMenu|Path|E%3A%5C%E5%B7%A5%E4%BD%9C%E9%A1%B9%E7%9B%AE|600|True|True|
[out]项=>ruleString164|LMenu|Path|E%3A%5C%E5%B7%A5%E4%BD%9C%E9%A1%B9%E7%9B%AE|600|True|True|
174763.12.3.3.3.0赋值打分制规则匹配(10分精确匹配进程,1分全局保底)
[in]失败后停止【无输入】True
[in]输入【值/表达式】[略]
[out]输出=>matchedRule
耗时:0ms
17476第 1 次循环,项的值:67|C|Action|O%E8%BD%AE%E7%9B%98O|400|True|True|
[out]项=>ruleString67|C|Action|O%E8%BD%AE%E7%9B%98O|400|True|True|
174773.12.3.3.3.0赋值打分制规则匹配(10分精确匹配进程,1分全局保底)
[in]失败后停止【无输入】True
[in]输入【值/表达式】[略]
[out]输出=>matchedRule67|C|Action|O%E8%BD%AE%E7%9B%98O|400|True|True|
耗时:0ms
174773.12.3.3.4如果/否则判断条件:$= !string.IsNullOrEmpty({matchedRule})
[in]如果【值/表达式】True
执行 True 分支, 共 5 步骤
174773.12.3.3.4.0拆分文本为列表拆包最高分规则
[in]输入【变量 matchedRule】67|C|Action|O%E8%BD%AE%E7%9B%98O|400|True|True|
[in]分隔【值/表达式】|
[in]滤除空值【值/表达式】False
[in]转义分隔符【无输入】False
[out]结果=>splitResult0:67 1:C 2:Action 3:O%E8%BD%AE%E7%9B%98O 4:400 5:True 6:True 7:
耗时:0ms
174773.12.3.3.4.1赋值$={splitResult}[2] => {targetType}
[in]失败后停止【无输入】True
[in]输入【值/表达式】[略]
[out]输出=>targetTypeAction
耗时:0ms
174773.12.3.3.4.2赋值$=Uri.UnescapeDataString({splitResult}[3]??"") => {targetContent}
[in]失败后停止【无输入】True
[in]输入【值/表达式】[略]
[out]输出=>targetContentO轮盘O
耗时:0ms
174773.12.3.3.4.3如果/否则按设定分发执行类型
[in]如果【值/表达式】True
执行 True 分支, 共 1 步骤
174773.12.3.3.4.3.0运行或停止动作运行动作 {targetContent}
[in]失败后停止【值/表达式】False
[in]类型【值/表达式】StartAction
[in]等待运行结束【值/表达式】False
[in]命令参数【无输入】
[in]调试模式运行【无输入】False
[in]目标动作【变量 targetContent】O轮盘O
耗时:1ms
174773.12.3.3.4.4如果/否则根据设定决定是否通知
[in]如果【值/表达式】True
执行 True 分支, 共 1 步骤
174773.12.3.3.4.4.0提示消息$$成功触发:{targetContent}
[in]消息内容【值/表达式】成功触发:O轮盘O
[in]类型【值/表达式】Success
[in]最大行数【无输入】0
[in]风格【无输入】Default
[in]点击命令【无输入】
耗时:5ms
17489第 3 次循环
[in]中止条件【无输入】*NULL*
174893.12.0文件系统监控主进程挂起并等待 IPC 文件变化(0 CPU 消耗)
[in]失败后停止【值/表达式】False
[in]操作类型【值/表达式】wait
[in]文件夹路径【变量 ipcFolder】C:\Users\Administrator\AppData\Local\Temp
[in]文件筛选【变量 ipcFile】quicker_dc_ipc.txt
[in]通知筛选【值/表达式】LastWrite
[in]包含子文件夹【值/表达式】False
[in]等待秒数【值/表达式】0
[in]等待的事件【值/表达式】changed
即将开始监控,事件可能同时发生,可能会导致动作log格式出错。
停止动作:用户停止动作
步骤(sys:fileSystemWatch)执行失败,原因:等待超时
耗时:20239ms
检测到了中止标志(ForceStop),停止后续步骤执行。
检测到了中止标志(ForceStop),停止后续步骤执行。
检测到了中止标志(ForceStop),停止后续步骤执行。
动作结束。耗时:37727.8971ms
GM-J 最后更新于 27天12小时前
GM-J 回复 GM-J 27天11小时前 :

这这个也是单击字母键会变成双击

GM-J 回复 GM-J 27天11小时前 :
这是家里的笔记本电脑也是一样哎,单击一次字母键就会触发
回复主贴