日記帳
  
カテゴリー
Links
blog(ブログ)マスター
アンドロイドの巣
ゼロから始めるベランダ菜園
タイトル
ラジコン
2019年3月
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

新元号 対応 追加 パソコン

カテゴリー: General
2017-03-07 23:57
2019年5月1日 の新元号

執筆:2017.3.7
編集:2017.3.7


サポート期間中のOSの場合は、OSのアップデートを適用することにより
すぐに切り替わるので対策は特にいらないでしょう。

Windows 7, 8.1 , 10 は、新元号が発表がされれば、マイクロソフトがアップデートを提供してくれると思いますので
特に対策はいりません。

オフィス製品は、OSの機能を使わずに独自に元号を組み入れている場合は、そのアプリのアップデートが必要になるでしょう。


手動で無理やり対応させる方法

※ 自己責任。無保証。
※ 操作を間違うと面倒なことになりますので、新元号が発表されるまで書き換え操作はしないほうがいいでしょう
※ 失敗して破損しても誰も助けてはくれませんので、技術・知識のない方は、やめましょう。

【サポート期限切れのMicrosoft Office】
C:\Program Files\Common Files\Microsoft Shared\OFFICExxx\MSO.dll
に保存されているらしい
※ バイナリプログラムなので変更はできません。公式アップデートが提供されない場合はあきらめましょう。

【Windows 7】
以下のレジストリに元号を追加すると切り替わります。

操作: 拡張子 .reg で 内容を保存してクリックすることで追加されます

ファイル名: 新元号追加.reg
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras]
"2019 05 01"="改元_改_Kaigen_K"
※ 新元号にあわせて書き換えてください

"2019 05 01"="漢字_略号(漢字1文字)_ローマ字読み_略号(英字1文字)"
平成の値は、
"1989 01 08"="平成_平_Heisei_H"
これを参考に書き換えます

【Windows XPに新元号を追加する】
基本的にオフィス製品などはシステムのこの機能を利用していませんので、対応する必要はないと思います。

(1) C:\Windows\System32\locale.nls
に元号の情報が保存されています

(2) 破損すると困りますので、まずはバックアップしましょう。
C:\Windows\System32\locale.nls.backup
として保存することにします。
copy C:\Windows\System32\locale.nls C:\Windows\System32\locale.nls.backup /B
(3) locale.nlsの詳しいフォーマットは不明。

元号データ: オフセット: 0x3F8F0
開始位置 0x3F8F0 , リトルエディアン 平成 で検索して -18 したほうが確実

日本の元号は漢字2文字と決まっているので、データは24バイトになります。
0-1 (数値)
2-3 (数値)
4-5 (数値)
6-7 (数値) データ長/2
年号は2文字と決まっているので
値は常に12(0x0C)になります
8- (UTF-16LE) 西暦(NULLを含む)
-end (UTF-16LE) 元号(NULLを含む)

平成のデータの上に連結して相対アドレスを書き換えると使えるようになるみたいです。
※ 別のアドレスに相対アドレス情報が入っているので
  そのまま追加しただけだと和暦 短い形式がおかしくなります。

ポイント:カレンダー構造体のエントリーブロック、データ個数、データブロックの3つをきちんと設定すること

(4) 元号を追加する
「7」 のスクリプトで作成できます。locale.nls-newとして保存されます。

(5) システムがファイルを開いていてロックされているので、そのままでは上書きできません。

「4」 で作った元号を追加したlocale.nls-newを
そのまま system32\locale.nls に上書きしようとすると
copy locale.nls-new C:\Windows\System32\locale.nls
locale.nls を上書きしますか? (Yes/No/All): y
要求された操作はユーザー マップ セクションで開いたファイルでは実行できません。
0 個のファイルをコピーしました。
とエラーが出ます。

・別のOSで起動する(NTFSの読み書きができること)
または
・ドライブを外して、別のマシンに接続する
そして、管理モードで該当ファイルを書き換えます

接続されたWindows XPのハードディスクドライブ番号を確認します
locale.nls-newを
接続したWindowsXPのドライブ名:\Windows\System32\locale.nls
にコピーします。
※ 間違って、起動したOSに書き込まないように注意しましょう。

(6) 正常にコピーされると、次回 Windows XPを起動すると年号が追加されます。

(7) locale.nls 書き換えスクリプトサンプル
PHPのサンプル : unpack関数、pack関数を使うと簡単です。
この機能を使っているアプリは、ほとんどないですので
混乱を招くといけないので,公開はしません。




ブログ内 関連記事: 新元号 対応 追加



 無料など オンラインゲーム一覧表 


ブログ内 関連記事: 新元号 対応 追加

トラックバック
トラックバックはありません。
PR