Windows 8.1/10 の GetVersionEx に関する覚書

 01_Days, 52_DevelopLabo  Windows 8.1/10 の GetVersionEx に関する覚書 はコメントを受け付けていません。
11月 262016
 

Win10: OS のバージョン

試したところ、Windows 10 でも、まだ、GetVersionEx() が使えるようなので、こっちを使ってバージョン値を
調べてみますが、いつ何時消えるかもしれないので、製品開発では使わない方がいいと思います。

このページ参考に、マニフェストに下記を手動追記したら NT10.0 とか普通にとれたので、お手製の某零細ソフト(とツイートでいってる、直近エントリのあれ)にイヤーッグワーッしてみた。意外とすんなり通った。

<!– Windows 10 –>
<supportedOS Id=”{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}”/>
<!– Windows 8.1 –>
<supportedOS Id=”{1f676c76-80e1-4239-95bb-83d0f6d0da78}”/>
<!– Windows 8 –>
<supportedOS Id=”{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}”/>
<!– Windows 7 –>
<supportedOS Id=”{35138b9a-5d96-4fbd-8e2d-a2440225f93a}”/>
<!– Windows Vista –>
<supportedOS Id=”{e2011457-1546-43c5-a5fe-008deee3d3f0}”/>

(https://msdn.microsoft.com/en-us/library/dn481241(v=vs.85).aspx (MSDN) よりの引用ぽい

余談:COMODO サンドボックスが不可解なちょっかいかけてて数時間悩んだ。原因特定されてからはなんか安心してしまった。以上普通に覚書ぶろぐ。というかほんっとに最近ぶろぐ書いてないですな。最後に「16歳のお誕生日おめでとう」>あいつ

DevelopLaboカテゴリを少々変更しました。

 52_DevelopLabo  DevelopLaboカテゴリを少々変更しました。 はコメントを受け付けていません。
8月 142006
 

私の開発環境そのものや嗜好に変化が出てきたので、少しカテゴリを編集しました。
今回、WindowsSDKが NativeCode for Windows にリネームとなりましたが、これは MFC も取り扱うことにしたためです。Meltice Family の開発で「Win32SDKの開発効率・拡張性は非常に低そう」という実感をしているところであり、今後はネイティブコード開発には MFC を積極的に使っていこうかなという気持ちがあります。
そして、PDA系開発のカテゴリとして W-ZERO3 が仲間入りしました。これは、私が 8/4に W-ZERO3[es] を入手し、いくつかソフト開発するアイディアがあるためです。とはいったものの、開発そのものは Win32SDK や MFC や .NET Framework のノウハウが転用できることは確認しているので、かえってネタがないかもしれません。既存の Zaurus カテゴリーが未だにエントリ無しなのは、 WIKI や別名義で書いているはてなダイアリー中心の生活をしているせいかもしれません。

ゴールデンウィークの総括

 52_DevelopLabo  ゴールデンウィークの総括 はコメントを受け付けていません。
5月 072006
 

9連休だったゴールデンウィークもあっという間に最終日。というわけで、コーディング関連の視点で今回の連休を総括してみます。
「Win32 方面」 : 進展無し
 Meltice 関連のパッチ当てなどを当初は計画していましたが、CVS Server on Cygwin まわりの下調べだけで終わってしまったような感じです。現在の我が家の CVS Server は FreeBSD 4.8 ベースであり、そろそろこの古い OS 環境を潰して新しい環境を、と考えているのですが、まだまだ FreeBSD 4.8 の出番は長そうです。
「.NET 方面」 : 進展無し
 CaldBase.NET は放置されたままです。Meltice Ver.2.2.x 系がつっかえているから、という事情もあります。6月くらいまでには再開したいところですが…
「PHP 方面」 : PHP4 → PHP5 アップグレード
 自宅サーバーで Apache / PHP の最新版への追随を行いました。既存スクリプトはほぼ問題なく動いているか、バージョンアップにより問題解消したかのいずれかです。MySQL のアップデートは保留中ですね。サーバー上の設定変更に終始したため、スクリプトのコーディング量はほぼゼロです。
「Ruby 方面」 : メールチェッカ試作版ならびに Ruby/Qte のメモが進展。
 Ruby の学習は当初の予定の3~4割程度というゆっくりさではありますが、着実に進んでいるようです。ただ、Ruby 関連については「あどり」名義ではなく「あさあさ」名義で動いていますので…詳細はRuby – あさあさの公開メモを参照してください。

unlha.rb なるものがあるみたいですね

 52_DevelopLabo  unlha.rb なるものがあるみたいですね はコメントを受け付けていません。
4月 272006
 

最近、圧縮解凍まわりは凍結しておいて Ruby の学習と情報収集に専念させていただいていますが、その過程で unlha.rb なるスクリプトを見つけてしまいました。
http://www.moonwolf.com/ruby/ の Win32Module というのが unlha.rb を含む配布ファイルです。2000年12月に公開されてそのままなのですが、UNLHA32.DLL の API は、流し読みした範囲内ではそれなりに定義されているように見えました。unlha.rb でぐぐってみると、対応しているソフトはただ1本だけ (http://www.stack-style.org/2001-03-06-02.html) という状態ですけれど…
さすがに CaldBase.NET (統合アーカイバDLLのC#による実装)というプロジェクトを立ち上げたまま放置気味になっている現状があるので、統合アーカイバを Ruby で実装しようという気にはちょっとなれませんね(^^;

はてなダイアリーの時間指定用スクリプト

 52_DevelopLabo  はてなダイアリーの時間指定用スクリプト はコメントを受け付けていません。
4月 162006
 

はてなダイアリーでは
*1145196803*[カテゴリー名] 題名
とすると、題名を書いた日記を書いた時間が表示されます。1145196803 なら 2006/04/16 23:13:23 となるわけです。この値は 1970/01/01 09:00 からの経過秒数の値となっており、9桁(100000000 : 1973/03/03 18:46:40) ~10桁(2147483647 : 2038/01/19 12:14:07) を表現できます。
ここ Movable Type のように日時を人間でもわかるフォーマットで自由に指定できる日記なら楽なのですが、はてなダイアリーはそういう仕様になっていないので、Ruby の勉強がてら、スクリプトを書いてみました。適当なファイルに保存して ruby 保存したファイル名.rb で、現在時刻を示す数値が表示されます。
以下、試験例。

  • ruby testscript.rb 0 : 1970/01/01 9:00 を表示
  • ruby testscript.rb 23 45 56 : スクリプト実行日の 23:45:56 を表示
  • ruby testscript.rb 2 23 45 56 : スクリプト実行月の2日の 23:45:56 を表示

個人的にはてなダイアリーの記述時間を調整したい(寝落ちしちゃったので前日の時間で日記を書きたい、等)という目的で作った適当スクリプト。内容もサンプルレベルなので、コピペ・改造などはご自由にどうぞ(需要があれば、ですが^^;;)

if (ARGV[0] == nil)
#現在時刻 (引数なし)
puts "現在時刻 : "+ Time.now.to_s + " ("+Time.now.to_i.to_s+")";
elsif(ARGV[1] == nil)
#1970/01/01 からの経過秒数 (引数1個)
puts "指定時刻 : " +
Time.at(ARGV[0].to_i).to_s +
" ("+Time.at(ARGV[0].to_i).to_i.to_s+")";
elsif(ARGV[3] == nil)
#時、分、秒 (引数3個)
year = Time.now.year.to_i;
mon  = Time.now.mon.to_i;
day  = Time.now.day.to_i;
puts "指定時刻 : " +
Time.local(year,mon,day,ARGV[0].to_i,ARGV[1].to_i,ARGV[2].to_i).to_s +
" ("+Time.local(year,mon,day,ARGV[0].to_i,ARGV[1].to_i,ARGV[2].to_i).to_i.to_s+")";
else
#日、時、分、秒 (引数4個)
year = Time.now.year.to_i;
mon  = Time.now.mon.to_i;
puts "指定時刻 : " +
Time.local(year,mon,ARGV[0].to_i,ARGV[1].to_i,ARGV[2].to_i,ARGV[3].to_i).to_s +
" ("+Time.local(year,mon,ARGV[0].to_i,ARGV[1].to_i,ARGV[2].to_i,ARGV[3].to_i).to_i.to_s+")";
end