我用拖延症追踪器程序记录我的 Windows 计算机上的活动,我想导出该程序收集的数据,以便进一步分析。
由于没有简单/内置的方法来以我想要的格式导出数据,我必须想出一些解决方法。
我想自动化按照以下点击步骤操作:
- 显示隐藏的托盘图标(在 Windows 任务栏中)。
- 右键单击 ProcrastiTracker 的托盘图标。
[View Statistics]
在菜单中单击左键。- 现在面对 ProcrastiTracker 窗口:
[Yesterday]
在[Quick Set]
下拉菜单中选择。 - 关闭 ProcrastiTracker 窗口(单击 X 窗口按钮或按 Alt+F4)
- 重复上述步骤(1)和(2)。
- 左键单击
[Export Html (View)]
- 现在面临另存为窗口:导航到特定位置,编辑文件名(我尝试保存),最后单击
[Save]
。
- 请注意,这是不是这是关于 ProcrastiTracker 的一个问题,但涉及在 Windows 操作系统上自动执行点击过程。
- 我研究过这个问题,也见过类似的工具自动热键和Microsoft Power Automate 桌面。然而,我不确定它们是否真的符合我的需要。
- 自动热键受到限制,因为它需要特定的屏幕坐标来确定鼠标点击的位置。这些坐标很难预测,主要是因为 ProcrastiTracker 托盘图标可能会偶尔改变其位置。
- Microsoft Power Automate 桌面——除了它只能在 Windows 10 上运行(而我有 Windows 8.1)之外,我还不确定这个工具是否与我想要实现的目标相关。
结论
我很感激任何关于如何实现这种自动化的反馈。理想情况下,我希望每天早上 6 点运行这种自动化程序来保存前一天的 ProcrastiTracker 数据。
如果您认为这不可能实现,请直言不讳。知道这不会发生会节省我的时间。
答案1
这是一个相当有挑战性的问题,但如果你花足够的时间,你绝对可以在 AutoHotkey 中解决这个问题。它的可靠性和每次都能正常工作也取决于你花在它上面的时间。
您已经将这些步骤分解了,因此您需要为每个步骤做的是弄清楚您需要实现什么代码,并解决每个问题,直到它们全部正常工作。
以下是一些入门想法,无特定顺序......
- 点击东西很容易,但知道在哪里点击却是个问题,因此如果有其他方式可以以编程方式做某事,那么以这种方式做几乎总是更好的,而不是尝试点击东西。
PixelSearch
并ImageSearch
可以根据您要查找的内容在屏幕上找到某些位置(假设您正在寻找一个图标,如果您将其保存在图像文件中,那么这可以帮助您在屏幕上找到该位置)。ImageSearch
但如果背景由于透明度而发生变化,则可能会失败- 您应该能够找到特定的代码来帮助以编程方式处理托盘图标(这里例如),尽管使用简单的界面技术尝试点击事物可能会更容易
- 如果您最终能够点击托盘图标,我建议您尽可能返回键盘导航/选择,例如,如果您能够以编程方式(通过点击)显示托盘图标菜单,则可以通过发送来执行“导出 HTML”选项,而不是使用
{Down 3}{Enter}
坐标点击相对于第一次点击的新位置 - 当您打开 GUI 来选择昨天的数据时,最简单的方法是确定要修改哪些控件并使用控件名称(
ComboBox1
例如,选择“昨天”的数据集) - 操作“另存为”对话框...您可能需要使用它
WinWaitActive
来确保窗口已打开,然后再使用SendInput
路径(或加载编辑控件值)来设置正确的路径并确认对话框 - 使用
BlockInput
可以增强调试时的可靠性(谨慎使用,并始终确保在测试代码结束时关闭)
我预见到这种设置类型的问题,操作 GUI 并单击托盘菜单选项等,当托盘图标移动位置等时的可靠性以及您的代码是否仍然有效。
对于像 ProcrastiTracker 这样简单的程序,我真正推荐的是深入研究发布在 GitHub 上的源代码。还有一件比自动化所有这些甚至逆向工程数据库结构更容易的事情,那就是自己构建一个支持命令行参数来导出昨天数据的 ProcrastiTracker,或者看看作者是否会考虑为你实现它。这样,你可以硬编码你想要导出的选项(即昨天的数据、文件夹位置、文件名),然后每天用那个特殊的命令行参数单独启动一次程序。