大家好,
目前我正在為我的插件開發更新功能。 我使用以下指南作為指導:
如何撰寫自更新 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 :外掛程式管理器
(您也可以查看加載項管理器程式碼,了解它在運行時如何處理更新加載項)