定时执行专家V6.7发布,增加标签自由分组功能 —— Tag feature for TimingExecutor
目录
▉ 关于“标签”功能
▉ “标签”功能的实现思路和完整代码
▉ 定时执行专家介绍
◆ 最新版下载链接
◆ 2023-03-07 V6.7 - 更新日志
▉ 关于“标签”功能
为了满足用户对定时任务的分类需求,在《定时执行专家》V6.7版本,增加标签功能:
- - 用户可以自定义标签名称
- - 任务可以支持多标签分类
- - 标签数量不少于10个
- - 双击任务过滤器树形控件的节点,打开标签对话框
- - 可以对标签名称进行修改
(图1-1,定时执行专家 - 标签对话框 - 修改标签名称)
▉ “标签”功能的实现思路和完整代码
1、将标签数据存储在任务data.xml文件里,格式如下:
<SCHEDULER>
<TAG>
<NAME>测试</NAME>
<ID>9</ID>
</TAG>
……
</SCHEDULER>
2、在主窗口类加入标签数组成员变量 m_mapTag;
3、在主窗口初始化方法内部,从data.xml数据文件里加载标签数据到 m_mapTag;
// <TAG>
// <ID>0</ID>
// <NAME>tag_0</NAME>
// </TAG>
pNodeL3 = pNodeL2->GetChildren();
wxString strID, strName;
while(pNodeL3)
{
strTmpNodeName = pNodeL3->GetName();
strTmpNodeVal = pNodeL3->GetNodeContent();
if(strTmpNodeName.IsSameAs("ID"))
strID = strTmpNodeVal;
if(strTmpNodeName.IsSameAs("NAME"))
strName = strTmpNodeVal;
pNodeL3 = pNodeL3->GetNext();
}
int nTagID = wxAtoi(strID);
// m_mapTag[nTagID] = wxString::Format("#%d: %s", nTagID, strName);
m_mapTag[nTagID] = strName;
4、在主窗口初始化方法内部的TreeCtrl初始化部分,加入标签节点初始化代码,使用 m_mapTag 初始化标签节点树控件;
// Add Job Tag - leo 230207
for(size_t i=0; i<N_TAG_COUNT; i++)
{
wxString strTagName = m_pScheduler->GetTagValue(i);
strTagName.Trim();
strTagName.Trim(false);
idLastChild = m_pTcCategory->AppendItem(idTagRoot, wxString::Format("%zd: %s", i, strTagName), 2, 1,
new MyTreeItemData(i + 200, strTagName));
if(0 == i)
idFirstTreeItem = idLastChild;
}
5、添加双击树形节点打开“标签对话框”方法,实现对标签名称修改的代码;
wxString strFullName = m_pTcCategory->GetItemText(event.GetItem());
wxArrayString arrName;
GetArrayString(strFullName, ":", arrName);
wxString strPartName = arrName.Item(1);
wxTextEntryDialog dlg(this, _("Please edit Tag name:"), _("Tag Dialog"), strPartName);
dlg.SetMaxLength(N_TAG_NAME_MAXLENTH);
dlg.SetTextValidator(wxFILTER_EMPTY);
int nret = dlg.ShowModal();
if(wxID_OK == nret)
{
wxString tmp = dlg.GetValue();
tmp.Trim();
tmp.Trim(false);
if(tmp.IsEmpty())
{
wxMessageBox(_("Tag Name is blank, Please input Tag Name."), _("Tag Dialog"));
return;
}
m_pTcCategory->SetItemText(event.GetItem(), wxString::Format("%s: %s", arrName.Item(0), tmp));
m_pScheduler->SetTagValue(wxAtoi(arrName.Item(0)), tmp);
// wxLogMessage("%d, %s", (int)wxAtoi(arrName.Item(0)), tmp);
// wxMessageBox(tmp); // for testing
}
6、在数据保存方法里面加入保存标签数据的代码。
// <TAG>
// <ID>
// <NAME>
IntStringHash::iterator itt;
for( itt = m_mapTag.begin(); itt != m_mapTag.end(); ++itt )
{
int key = itt->first;
wxString value = itt->second;
pNodeL2 = new wxXmlNode(m_pNodeRoot, wxXML_ELEMENT_NODE, "TAG");
// ID
wxXmlNode* pNId = new wxXmlNode(pNodeL2 , wxXML_ELEMENT_NODE, "ID");
pNVal = new wxXmlNode(pNId , wxXML_TEXT_NODE , "", wxString::Format("%d", key));
// NAME
wxXmlNode* pNodeName = new wxXmlNode(pNodeL2 , wxXML_ELEMENT_NODE, "NAME");
pNVal = new wxXmlNode(pNodeName , wxXML_TEXT_NODE , "", value);
}
▉ 定时执行专家介绍
一款制作精良、功能强大、毫秒精度、专业级的定时任务执行软件。软件具有 25 种【任务类型】、12 种【触发器】触发方式,并且全面支持界面化【Cron表达式】设置。软件采用多线程并发方式检测任务触发和任务执行,能够达到毫秒级的执行精度,可以同时支持200个以上任务的毫秒级触发。
◆ 最新版下载链接
BoomWorks软件的最新版本_boomworks的博客-CSDN博客▉定时执行专家—毫秒精度、专业级的定时任务执行软件▉ 定时执行专家 ——远程客户端程序 TinyExec.exe v22.07▉ SuperSearch超级网搜 —— 让思考从搜索开始▉ 代码统计分析工具 —— 程序员必备工具https://blog.csdn.net/boomworks/article/details/113486307
◆ 2023-03-07 V6.7 - 更新日志
- 新增 【任务标签】功能,可以对任务进行自定义分组
- 新增 【自动截屏】可选“创建子目录”功能
- 新增 【打开网址、打开文件夹、打开文件、执行脚本或程序、执行DOS命令】任务增加“显示方式”设置
- 新增 【执行脚本或程序】任务支持指定“命令行参数”、“工作目录”设置
- 优化 进一步减小软件压缩包大小,提高软件执行效率
- bugfix 修复【关机、重启、注销、睡眠、休眠、锁定此电脑】任务在某些情况下循环执行问题
- 升级 wxWidgets 3.2.2
// END