Windows ストア アプリ (ARM および x86/64 用にコンパイル) が現在 ARM デバイスで実行されているか、より具体的には Microsoft Surface Tablet で c# 内から実行されているかを実行時に尋ねる可能性はありますか、または 2 つのバージョンのコンパイルが必要ですか?異なるプラットフォームで異なる動作をする同じアプリ?
質問する
175 次
2 に答える
3
これは、次のコードを介して行うことができます (このSO 投稿によると):-
[DllImport("kernel32.dll")]
internal static extern void GetNativeSystemInfo(ref SystemInfo lpSystemInfo);
internal static bool IsArmBased()
{
var sysInfo = new SystemInfo();
GetNativeSystemInfo(ref sysInfo);
return sysInfo.wProcessorArchitecture == ProcessorArchitectureArm; //ushort 5
}
これは WACK テストに合格します。このテストが永遠に続くとは思えません。なぜこの情報が必要なのかをよく考えてください (統計情報のためだけなのか、それともアプリの動作を変更しているのですか? もしそうなら、それはなぜですか!?)
于 2013-01-09T09:32:36.163 に答える
1
using Windows.ApplicationModel;
Package package = Package.Current;
PackageId packageId = package.Id;
String arch = String.Format("{0}", packageId.Architecture);
これにより、基盤となるハードウェアに応じて、「X86」または「ARM」が返されます。
于 2013-01-30T19:33:14.337 に答える