1

Windows ストア アプリ (ARM および x86/64 用にコンパイル) が現在 ARM デバイスで実行されているか、より具体的には Microsoft Surface Tablet で c# 内から実行されているかを実行時に尋ねる可能性はありますか、または 2 つのバージョンのコンパイルが必要ですか?異なるプラットフォームで異なる動作をする同じアプリ?

4

2 に答える 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 に答える