WinAPIの元号対応

このQ&Aのポイント
  • WinAPIの元号対応についての質問
  • FormatDateTimeやVarDateFromStrを使用したソフトウエアの元号対応について調査
  • Microsoftのアップデートやプログラム側での対応が必要か
回答を見る
  • ベストアンサー

WinAPIの元号対応

こんにちは、honiyonです。  FormatDateTimeやVarDateFromStrで西暦と和暦の変換が出来ますが、もし次の元号が新しく制定された場合、これらの関数を使ったソフトウエアはどうなるのかな?と思い質問しました。  レジストリを色々調べてみましたが、ここには元号情報が見つかりませんでした。調べ方が悪いのか、Windowsがどのように元号情報を保持しているかの技術情報も見つかりませんでした。  もしユーザー側で元号情報が修正出来ないとなれば、Microsoftがアップデートをかけてくれる事が前提となりますが、その他に上記APIを使用したプログラム側での対応が、何か必要になるのかな?と思いまして。  宜しくお願いします(..

質問者が選んだベストアンサー

  • ベストアンサー
  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.1

Locales & Languages/Windows Setup Information http://www.microsoft.com/globaldev/reference/loclanghome.mspx や nls information page http://www.microsoft.com/globaldev/nlsweb/ を見ると、NLSサポートの一環として元号をサポートしているようです。 NLSサポートはWindows 2000/XP/2003ではNLSファイル(System32フォルダ内にある*.nlsファイル)を使って行われているので、元号が変わる場合はマイクロソフトから新しい差し替え用*.nlsファイルが提供されるのを待つ必要があるかと思います。

honiyon
質問者

お礼

こんにちは、honiyonです。  ご返信が遅くなり申し訳ありません。  なるほど、そのような仕組みとなっていたのですね。  もしも、の時の動きが明確に出来ました。  ご回答有難うございました(..

関連するQ&A

  • 和暦→西暦(有効範囲を考慮)

    いつもお世話になってます。 VB2010(.NET2.0)、Winアプリ 和暦(元号)と西暦の相互変換についてです。 CultureInfo、JapaneseCalendarを使用して変換しています。 西暦→和暦の変換は問題ないんですが 和暦→西暦の変換時に有効ではない和暦を指定するとエラーとなります。 ここの「有効ではない和暦」というのは例えば「大正30年」とかです。 フォーム上にComboBoxとTextBoxが配置されており ComboBoxには「明治」「大正」「昭和」「平成」を格納、 TextBoxは数値入力のみですが2桁数値というだけで 他の制限はかけていない状態です。 各元号に有効な値を保持しといてって方法は最終手段です。 出来るだけ汎用性を持たせた形で上記エラーを回避したいと思っています。 思いついてる方法はあまりスマートではないので どなたか、こんな風にコーディングすれば出来るよって ヒントでもいいのでご意見いただけると幸いです。 よろしくお願いしますm(_ _)m

  • WPA2脆弱に対するマイクロソフトの対応

    WPA2の脆弱についてのMicrosoftの対応は「悪意あるソフトウェア削除ツール(MSRT)を声明文で、このUpdateを適用した顧客は保護される」としたようですが、この悪意あるソフトウェア削除ツールって各月にアップデートすると、ほぼもれなくインストールされているようですが、このツールは自動か手動かはわかりませんが、悪意のあるソフトウェアをPCでスキャンし対象となるものを削除するツールだと思うのですが、このツールがインストールされ適用されていれば、WPA2の脆弱問題が解決されるとはどういう事なんでしょうか?このツールは他の修正パッチ見たいに何かを修正更新するという性格のものなのでしょうか?ツールの使い方から考えて今回の脆弱問題の解決にどう作用しているのか分かりません。教えてください。

  • DLookUp関数を使ったACCESSの令和表示

    [やりたい事と背景] ACCESS2007で和暦を令和表示させたい。 現在、新元号の対処方法「ACCESS2007の為」としてテキストボックスのプロパティー(書式)に「”令和○年”」と記載し、データタブのレコードソースに「=Date()」としてしています。年に一回とは言え自動で対処できないものかと考えて居りました。昨日ですがWEBにて対処方法が記載されたサイト「ページ」を見つけました。早速、試してみましたところ「指定した式に不適切な日付の値が含まれています。」とのアラートが出て設定完了に至りませんでした。私には問題が「式」なのか「式」ならどこに問題があるのかすら分かりません。アドバイスをお願いできますでしょうか。 [令和対応紹介 ウェブサイト] 新元号は「令和」|マイクロソフトのパッチに頼らずにAccessで新元号を表示する方法 https://www.ait-labo.com/excel_access/2805/ [ウェブでの紹介と対応方法] 1,テーブル内のフィールドは次の3つとシンプルです。「IDは必要ないのでしょうか?(私はID無しで作りました)」 ・開始年月日(日付/時刻型) ・終了年月日(日付/時刻型) ・和暦(短いテキスト) 自身の対応:西暦・和暦対応マスタを作る。名前:履歴マスタ「私は T_履歴マスタとしました。(修正時に探しやすい為)」 2,和暦への変換はDLookupで取得 フォームには、日付を表示するテキストボックス(txt日付)と和暦日付を表示させるテキストボックス(txt和暦日付)を用意します。 「和暦日付付用のフィールドのコントロールソースには次のような設定を行います(コピペして終了させ様とするとエラーアラートがでる)」 =DLookUp(“和暦”,”和暦マスタ(T_履歴マスタに変更)”,”開始年月日 <= #” & txt日付 & “# and 終了年月日 >= #” & txt日付 & “#”) & Format(txt日付,”mm\年dd\日”) 以上ですが、宜しくお願いします。

  • 何度修正してもホームページが英語になってしまう

    原因がスパイウエアということはわかってるのですが 何度検索をかけて削除して、修正しても 起動するたびにホームが about:blank というものになり、困っています。 Spaybotでは引っかからないのですが Ad-awareで検索すると毎回ひっかかり 詳細によると SOFTWARE¥Microsoft¥Internet Explorer¥main のレジストリがおかしくなっているらしく その値に英語で 「HOME設定をabout:blankにする」といったことが書かれていて たぶんそれを修正できたら良いのだと思いますが そのレジストリの正常な値がわからないので 修正できません(><) いったいどうしたらよいでしょうか? 助けてください Windows XPです。

  • [レジストリ]EmbedExtnToClsidMappingは

    「HKEY_LOCAL_MACHINE\Software\Microsoft \Internet Explorer\EmbedExtnToClsidMapping」 は何に使われていますか? #聞いてばかりですが、 レジストリ関係の情報って ほとんど検索にかからないんです(涙)

  • DELLにより提供されたIE 消す方法。

    先日DELLでパソコンを購入したのですが、IEのタイトルバーに「DELLにより提供された」という煩わしく不愉快な一文が入ってます。 レジストリエディタを開いて修正を試みようとしましたが、HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main のWindow Titleというレジストリがありません。「(規定)」というものひとつしか存在せず、どうすればいいのかまったく分かりません。 どなたかアドバイスお願いします。

  • オートコンプリートのバックアップ方法。

    WindowsXP Pro SP2を使用しております。 OSの再インストールを行う予定です。 IDパスワード、フォームを含むオートコンプリートのバックアップ方法をご教授下さい。 http://support.microsoft.com/kb/q255072/ 以前こちらの方法を試して見ましたがうまくバックアップできなかった記憶があります。 説明には、 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer とありますが、オートコンプリートの情報を保持する レジストリ値およびファイルはここ以外に考えられませんか? ご回答お待ちしております、よろしくお願い致します。

  • DLookUp関数を使ったACCESSの令和表示2

    [やりたいこと] 同じテキストボックスで「西暦」と「曜日」をマウスのクリック動作で変更表示させ、、「和暦(令和02年)」は別テキストボックスで関数を使って表示させたい。 「=DLookUp("和暦","T_和暦マスタ","開始年月日<= #"&txt日付&"#and 終了年月日>=#"&txt日付&"#")」使って表示させたい。 [やってみたこと] ・既存テキストボックスの名前変更:名前「txt日付」 ・テキストボックスの追加:名前「txt和暦日付」 ・データタブ:コントロールソース  「=DLookUp("和暦","T_和暦マスタ","開始年月日<= #"&txt日付&"#and 終了年月日>=#"&txt日付&"#")」※参照先はテーブル「T_和暦マスタ」 「結果」追加のテキストボックスに令和表示「令和02年」はされますが、既存テキストボックスが「西暦」に固定されクリックしても曜日の表示もできません。 [現在の設定] ・テキストボックス:(名前:年月日曜日)コントロールソース「=Date()」 ・イベントのクリック時に「以下の記述」を設定 Private Sub テキスト11_Click() With Me.ActiveControl Select Case .Tag Case 1 .Tag = 2 .Format = "gggee\年mm\月dd\日" Case 2 .Tag = 3 .Format = "aaaa" Case Else .Tag = 1 .Format = "yyyy/mm/dd" End Select End With End Sub [補足情報] [令和対応紹介 ウェブサイト] 新元号は「令和」|マイクロソフトのパッチに頼らずにAccessで新元号を表示する方法 https://www.ait-labo.com/excel_access/2805/ 以上ですが、宜しくお願いします。

  • VB.NETの不正?なレジストリ書き込みについて(WinXP)

    VB.NETで開発を行っているのですが、特にレジストリに書き込むような記述はしていないのに、何故か開発したEXEの情報?が以下のレジストリに書き込まれています。 このレジストリは一体何者なのでしょうか? またレジストリの内容を削除した場合にWinXPに影響はありますか? HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\MUICache

  • レジストリの操作、編集

    レジストリについてご存知の方よろしくお願いします。 フォルダやファイルの表示が起動する度に変るので修復すべく下記ページを検索より見つけ実行しました。 http://support.microsoft.com/kb/813711/ja このページの「自分で解決する」の「Windows Vista または Windows 」のレジストリの編集についてお尋ねします。 1.次のレジストリ サブキーを削除します。 oHKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\Bags oHKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\BagMRU 列記したキーの中でこの2つは存在しませんが、なぜでしょう? x64 ベースの Windows Vista または Windows 7 では、次のレジストリ サブキーを削除します。 私のOSはWindows7 64bitですがキーは存在しません。どうして? 3.手順 2.で作成したレジストリ サブキーで [BagMRU Size] レジストリ値を作成してから5000に設定します。  oHKEY_CURRENT_USER\Software\Classes\LocalSettings\Software\Microsoft\ Windows\Shell Shellの配下に新規の[BagMRU Size]キーを作成して右ペインの「既定」を右クリックして修正→「値のデータ」を5000にすればいいですか。

専門家に質問してみよう