C# Надстройка Visual Studio Excel: как определить изменение темы Excel Office? - PullRequest
4 голосов
/ 13 апреля 2020

Я написал класс, который определяет текущую тему 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?
  • Как можно обнаружить / перехватить это событие, пожалуйста ?

enter image description here

Я уже использовал Process Monitor и получил местоположение ключа реестра где хранится тема Но я не могу постоянно проверять реестр, я предпочитаю обнаруживать, когда пользователь нажимает на Больше Commmand \ Excel Options , если это событие можно обнаружить.

Ваши ответы и предложения приветствуются , Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...