「Xamarin.MacでOSのバージョンを取得する」を編集中
ナビゲーションに移動
検索に移動
この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
1行目: | 1行目: | ||
==概要== | ==概要== | ||
[[Xamarin.Mac]]に存在しない標準ライブラリを[[P/Invoke]]で叩く際には[[OS]]のバージョンにより[[API]]があったりなかったりして[[条件分岐]]に迫られることが多い。 | [[Xamarin.Mac]]に存在しない標準ライブラリを[[P/Invoke]]で叩く際には[[OS]]のバージョンにより[[API]]があったりなかったりして[[条件分岐]]に迫られることが多い。 | ||
− | 基本的に[[ | + | 基本的に[[Mac OS X]]は[[Windows]]のように古いAPIも継続して使えるなどという軟弱な仕様ではない。 |
− | + | 良くも悪くも代謝を施し市場活性化のためにバッサリ切り捨てである。 | |
− | |||
==実装:SystemVersion.plistから抜く== | ==実装:SystemVersion.plistから抜く== | ||
− | + | SystemVersion.plistというファイルから抜けるようだ。 | |
<source lang="csharp"> | <source lang="csharp"> | ||
− | var version = NSDictionary.FromFile(@"/System/Library/CoreServices/SystemVersion.plist"); | + | var version = NSDictionary.FromFile(@"/System/Library/CoreServices/SystemVersion.plist"); |
− | Console.WriteLine(version); | + | Console.WriteLine(version); |
</source> | </source> | ||
25行目: | 24行目: | ||
[[Xamarin]]のNSDictionaryはIDictionaryを実装しているので以下のように手軽にアクセスできる。 | [[Xamarin]]のNSDictionaryはIDictionaryを実装しているので以下のように手軽にアクセスできる。 | ||
<source lang="csharp"> | <source lang="csharp"> | ||
− | Console.WriteLine(version["ProductVersion"]); | + | Console.WriteLine(version["ProductVersion"]); |
</source> | </source> | ||
[[文字列]]では扱いにくい場合は[[.NET]]標準のVersionクラスを使えばパースも簡単にできる。 | [[文字列]]では扱いにくい場合は[[.NET]]標準のVersionクラスを使えばパースも簡単にできる。 | ||
<source lang="csharp"> | <source lang="csharp"> | ||
− | var v = new Version(version["ProductVersion"].ToString()); | + | var v = new Version(version["ProductVersion"].ToString()); |
− | Console.WriteLine(v.Major); | + | Console.WriteLine(v.Major); |
− | Console.WriteLine(v.Minor); | + | Console.WriteLine(v.Minor); |
− | Console.WriteLine(v.Build); | + | Console.WriteLine(v.Build); |
</source> | </source> | ||
40行目: | 39行目: | ||
[[Mac OS X 10.9]]([[Mavericks]])以下は切り捨てるというのであればこの方法が推奨となるようだ。 | [[Mac OS X 10.9]]([[Mavericks]])以下は切り捨てるというのであればこの方法が推奨となるようだ。 | ||
<source lang="csharp"> | <source lang="csharp"> | ||
− | var version = NSProcessInfo.ProcessInfo.OperatingSystemVersion; | + | var version = NSProcessInfo.ProcessInfo.OperatingSystemVersion; |
− | + | Console.WriteLine(version); | |
</source> | </source> | ||
47行目: | 46行目: | ||
*[[Xamarin.Mac/アクセシビリティの許可の有無を取得する]] | *[[Xamarin.Mac/アクセシビリティの許可の有無を取得する]] | ||
*[[Xamarin.Mac/Global Event Monitorでキー入力を監視する]] | *[[Xamarin.Mac/Global Event Monitorでキー入力を監視する]] | ||
+ | |||
+ | ==参考文献== | ||
+ | {{reflist}} | ||
+ | |||
+ | {{stub}} | ||
[[category:Xamarin.Mac]] | [[category:Xamarin.Mac]] | ||
[[category:MonoMac]] | [[category:MonoMac]] |