「テーマの自動変更」の版間の差分
| (2人の利用者による、間の6版が非表示) | |||
| 4行目: | 4行目: | ||
Meryのオプションで、「アプリのテーマ」を「システム設定を使用する」とすると、Windowsに合わせてMeryのテーマが変更されるようになりますが、エディタ部のテーマはこれとは別に設定変更する必要があります。 | Meryのオプションで、「アプリのテーマ」を「システム設定を使用する」とすると、Windowsに合わせてMeryのテーマが変更されるようになりますが、エディタ部のテーマはこれとは別に設定変更する必要があります。 | ||
[https://apps.microsoft.com/detail/xp89dcgq3k6vld?hl=ja-JP&gl=JP Microsoft PowerToys]の Light Switch や、[https://apps.microsoft.com/detail/xp8jk4hzbvf435?hl=ja-JP&gl=JP Auto Dark Mode]などを使用すると、Windowsのテーマを時間で自動変更するなどができますが、Mery本体はこれに追随するのに、エディタ部のテーマだけ置き去りになって、なんか悲しかったので作りました。 | |||
* Meryのオプション->「基本」->「アプリのテーマ」で、「システム設定を使用する」としている場合のみ動作するようにしてあります。 | * Meryのオプション->「基本」->「アプリのテーマ」で、「システム設定を使用する」としている場合のみ動作するようにしてあります。 | ||
* ライトモード/ダークモード用のテーマを用意しておき、マクロ先頭でテーマ名を指定します | * ライトモード/ダークモード用のテーマを用意しておき、マクロ先頭でテーマ名を指定します | ||
:(Mery標準のテーマは使えません、「名前を付けて保存」したテーマを使用します) | :(Mery標準のテーマは使えません、「名前を付けて保存」したテーマを使用します) | ||
* マクロのカスタマイズ画面のリストに登録したら、イベントを有効にします | |||
:イベントはお好みで...(「フォーカスを受け取った時」「フォーカスを失った時」くらいが妥当だと思います) | |||
テーマを書き換えるアイディアは、ucky様の「[ | テーマを書き換えるアイディアは、ucky様の「[[テーマのトグル]]」マクロからいただきました。 | ||
すてきなアイディアありがとうございます。 | |||
== 変更履歴 == | == 変更履歴 == | ||
| 22行目: | 25行目: | ||
// ライトモード/ダークモード用のテーマを用意しておき、ここでテーマ名を指定します | // ライトモード/ダークモード用のテーマを用意しておき、ここでテーマ名を指定します | ||
// (Mery標準のテーマは使えません、「名前を付けて保存」したテーマを使用します) | // (Mery標準のテーマは使えません、「名前を付けて保存」したテーマを使用します) | ||
var lightModeTheme = "#Custom-Light" | var lightModeTheme = "#Custom-Light"; | ||
var darkModeTheme = "#Custom-Dark"; | var darkModeTheme = "#Custom-Dark"; | ||
| 76行目: | 79行目: | ||
// Mery.ini を探す | // Mery.ini を探す | ||
var iniPath = editor.FullName.replace(/\.exe$/i, ".ini"); | var iniPath = editor.FullName.replace(/\.exe$/i, ".ini"); | ||
if (! (new ActiveXObject("Scripting.FileSystemObject")).FileExists(iniPath)){ | if(! (new ActiveXObject("Scripting.FileSystemObject")).FileExists(iniPath)){ | ||
var iniName = /\\([^\\]+)\.exe$/.exec(editor.FullName)[1]; | var iniName = /\\([^\\]+)\.exe$/.exec(editor.FullName)[1]; | ||
iniPath = (new ActiveXObject( "WScript.Shell" )).SpecialFolders("APPDATA") + "\\Mery\\" + iniName + ".ini"; | iniPath = (new ActiveXObject("WScript.Shell")).SpecialFolders("APPDATA") + "\\Mery\\" + iniName + ".ini"; | ||
} | } | ||
// Mery.ini を読みこむ | // Mery.ini を読みこむ | ||
| 89行目: | 92行目: | ||
adodb.Close(); | adodb.Close(); | ||
var start = iniText.search(new RegExp( "^\\[" + sectionName.replace(/\W/g, "\\$&") + "\\]$", "m" )); | var start = iniText.search(new RegExp("^\\[" + sectionName.replace(/\W/g, "\\$&") + "\\]$", "m")); | ||
if(start >= 0){ | if(start >= 0){ | ||
start = start + sectionName.length + 4; | start = start + sectionName.length + 4; | ||
スポンサーリンク