大家好,
目前我正在为我的插件开发更新功能。 我使用以下指南作为指导:
如何编写自更新 JMP 插件
一切都很完美——但目前我正在为下一步而苦苦挣扎。
我想知道是否可以根据更新是否可用动态“切换”更新按钮。
我尝试使用此处找到的脚本启动功能:
https://www.jmp.com/support/help/en/15.2/index.shtml#page/jmp/run-a-script-at-start-up.shtml
...操作 addin.jmpcust 文件。 然而,菜单似乎在执行脚本之前加载 - 因此您需要再次重新启动 jmp 才能看到更改。
所以我的问题是:有没有办法刷新/更新主菜单,或者也许有更好的可能性来实现我的目标?
提前致谢,
总干事
大家好,
感谢您的反馈。 我在加载项管理器中找不到任何内容。
我想强制更新可能是一个选项 - 但我仍在尝试创建一个“可变”加载项菜单项。
我想我找到了一个解决方法 - 如果您在插件目录中执行“addin.def”文件,菜单项就会更新。
因此,我在 addin 目录中创建了一个 .jsl 文件,其中包含以下几行:
//!
Delete Symbols();
NamesDefaultToHere(1);
PTH_ADDIN = Get Path Variable("ADDIN_HOME(com. ...)");
FN_ADDIN = Convert File Path(PTH_ADDIN || "addin.def", Windows);
If(File Exists(FN_ADDIN ),
Open(FN_ADDIN , JMP);
);以“//!”开头该脚本在打开时运行。
我现在在我的 addinLoad.jsl 文件中检查是否/如何更改菜单项并编辑我的“.jmpcust”文件。
之后,我发送 CMD 来启动/执行上面显示的 .jsl 文件 -> 菜单项在启动时更新。
也许有更好的方法 - 但它有效(而且实际上速度相当快)。
BR、总干事
我开发了一个大型插件系统(当我是一只工蜂,而不是一名高级高尔夫球手时),它会自动保持插件更新。我发现将 JSL 等复制到 Addins 目录中的速度非常快,而我最终所做的就是将 Addins 设置为始终将 JSL 从全局存储库复制到 Addins 目录中,然后运行 JSL。我不必要求用户重新安装,并且用户始终拥有最新的代码。它确实简化了管理。
不是对您问题的直接回答,但您是否检查过出色的加载项管理器@Justin_Chilton :插件管理器
(您还可以查看加载项管理器代码,了解它在运行时如何处理更新加载项)