Я написал класс, который определяет текущую тему Excel.
Получить текущую офисную тему Excel:
//Declaration
string officeVersion;
int themeCode;
// Get Office Version first
officeVersion = "16.0";
// Goto the Registry Current Version
RegistryKey rk = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Office\" + officeVersion + @"\Common");
// Get Stored Theme
themeCode = (int)rk.GetValue("UI Theme", GlobalVar.COLORFUL);
Затем, основываясь на значении themeCode
, я могу определить текущая тема Excel:
// Theme Constants
public const int COLORFUL = 0;
public const int DARKGREY = 3;
public const int BLACK = 4;
public const int WHITE = 5;
Мой вопрос:
- Как определить, когда пользователь во время работы Excel меняет тему Office из Параметры Excel ?
- По-другому, происходит ли какое-либо событие Excel, когда пользователь редактирует что-либо из параметров Excel?
- Как можно обнаружить / перехватить это событие, пожалуйста ?
Я уже использовал Process Monitor и получил местоположение ключа реестра где хранится тема Но я не могу постоянно проверять реестр, я предпочитаю обнаруживать, когда пользователь нажимает на Больше Commmand \ Excel Options , если это событие можно обнаружить.
Ваши ответы и предложения приветствуются , Заранее спасибо!