我有一個 C# 應用程序,其中包含一些運行 JMP 自動化的函數。 當用戶啟動 C# 應用程序時,它會進行檢查以確保 JMP 已安裝在用戶的系統上。我已就如何了解系統上是否安裝了 JMP 的問題聯繫了 JMP 技術支持。解決方案是尋找註冊表項。
在 C# 代碼中,我有一個 bool 來檢查 JMP 是否已安裝:
bool jmpExists = Registry.ClassesRoot.OpenSubKey("TypeLib\\{DCD36DE0-78F8-11CF-9E68-0020AF24E9FE}\\1.0\\0\\win32", false) != null;
到目前為止,至少有 2 台電腦(安裝了 Windows 10 和 JMP 13)沒有此註冊表項,而 10 台電腦有此註冊表項。
在一台缺少註冊表項的 PC 上,我嘗試運行 JMP 自動化(忽略缺少的註冊表項),但它無法在此 PC 上啟動。 接下來,我卸載了 JMP 13,然後重新安裝了 JMP 13,之後註冊表項出現並且 JMP 自動化工作正常。
這是創建 JMP/自動化實例的 C# 代碼
使用 System.Runtime.InteropServices;
JMP.Application myJMP = new JMP.Application();
但很多可能使用我的軟件的用戶對JMP有很多定制,卸載並重新安裝JMP的想法是非常不可取的! (否則他們的 JMP 工作得很好)
知道為什麼某些人的計算機上缺少此註冊表項嗎? (運行 JMP 13 的 Windows 7 PC)
除了重新安裝 JMP 之外,還有其他方法可以解決此問題嗎?我不確定這是否只是將註冊表項複製到沒有註冊表項的計算機上的簡單問題? 不完全確定如何復制和安裝註冊表項(如果這是解決方案)。
如果 32 位 JMP 安裝在 64 位版本上,它們的密鑰可能會出現在 Wow 配置單元中。因此,有問題的密鑰位於:
HKEY_CLASSES_ROOT\WOW6432Node\TypeLib\{DCD36DE0-78F8-11CF-9E68-0020AF24E9FE}\1.0\0\win32
布賴恩·科科倫
JMP開發
重置文件關聯應該重置該註冊表項。
文件 > 首選項 > Windows 特定
如果由於某種原因這不起作用,您可以在 Regedit 中自行創建註冊表項。
請注意,您的 jmpExists 變量實際上意味著“JMP 已安裝並且 JMP 可以自動化”。