大家好,又见面了,我是全栈君
wpf:
1 <phone:PhoneApplicationPage
2 x:Class="ABSystemInfo.MainPage"
3 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
4 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
5 xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
6 xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
7 xmlns:controls="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls"
8 xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
9 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
10 mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"
11 FontFamily="{StaticResource PhoneFontFamilyNormal}"
12 FontSize="{StaticResource PhoneFontSizeNormal}"
13 Foreground="{StaticResource PhoneForegroundBrush}"
14 SupportedOrientations="Portrait" Orientation="Portrait"
15 shell:SystemTray.IsVisible="True">
16
17 <!--LayoutRoot is the root grid where all page content is placed-->
18 <Grid x:Name="LayoutRoot" Background="Transparent">
19 <!--Pivot Control-->
20 <controls:Pivot Title="DEVICE INFO">
21 <controls:PivotItem Header="device">
22 <Grid>
23 <StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" Height="607" Width="456">
24 <TextBlock Text="Device Manufacturer" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>
25 <TextBlock Text="0" Margin="10" Name="DeviceManufacturerTextBlock" FontSize="36" TextAlignment="Center"/>
26 <TextBlock Text="Device Name" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>
27 <TextBlock Text="0" Margin="10" Name="DeviceNameTextBlock" FontSize="36" TextAlignment="Center"/>
28 <TextBlock Text="Device Firmware Version" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>
29 <TextBlock Text="0" Margin="10" Name="DeviceFirmwareVersionTextBlock" FontSize="36" TextAlignment="Center"/>
30 <TextBlock Text="Device Hardware Version" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>
31 <TextBlock Text="0" Margin="10" Name="DeviceHardwareVersionTextBlock" FontSize="36" TextAlignment="Center"/>
32 </StackPanel>
33
34 </Grid>
35 </controls:PivotItem>
36
37 <controls:PivotItem Header="memory">
38 <Grid>
39 <StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" Height="607" Width="456">
40 <TextBlock Text="Application Current Memory Usage" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>
41 <TextBlock Text="0" Margin="10" Name="ApplicationCurrentMemoryUsageTextBlock" FontSize="36" TextAlignment="Center"/>
42 <TextBlock Text="Application Memory Usage Limit" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>
43 <TextBlock Text="0" Margin="10" Name="ApplicationMemoryUsageLimitTextBlock" FontSize="36" TextAlignment="Center"/>
44 <TextBlock Text="Application Peak Memory Usage" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>
45 <TextBlock Text="0" Margin="10" Name="ApplicationPeakMemoryUsageTextBlock" FontSize="36" TextAlignment="Center"/>
46 <TextBlock Text="DeviceTotalMemory" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>
47 <TextBlock Text="0" Margin="10" Name="DeviceTotalMemoryTextBlock" FontSize="36" TextAlignment="Center"/>
48
49 </StackPanel>
50 </Grid>
51 </controls:PivotItem>
52
53 <controls:PivotItem Header="hardware">
54 <Grid>
55 <StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" Height="607" Width="456">
56 <TextBlock Text="Is Keyboard Deployed?" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>
57 <TextBlock Text="0" Margin="10" Name="IsKeyboardDeployedTextBlock" FontSize="36" TextAlignment="Center"/>
58 <TextBlock Text="Is Keyboard Present?" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>
59 <TextBlock Text="0" Margin="10" Name="IsKeyboardPresentTextBlock" FontSize="36" TextAlignment="Center"/>
60 <TextBlock Text="Power Source" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>
61 <TextBlock Text="0" Margin="10" Name="PowerSourceTextBlock" FontSize="36" TextAlignment="Center"/>
62 </StackPanel>
63 </Grid>
64 </controls:PivotItem>
65
66 <controls:PivotItem Header="os">
67 <Grid>
68 <StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" Height="607" Width="456">
69 <TextBlock Text="Operating System" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>
70 <TextBlock Text="0" Margin="10" Name="OperatingSystemPlatformTextBlock" FontSize="36" TextAlignment="Center"/>
71 <TextBlock Text="Version" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>
72 <TextBlock Text="0" Margin="10" Name="OperatingSystemVersionTextBlock" FontSize="36" TextAlignment="Center"/>
73 </StackPanel>
74 </Grid>
75 </controls:PivotItem>
76
77 <controls:PivotItem Header="clr">
78 <Grid>
79 <StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" Height="607" Width="456">
80 <TextBlock Text="Major" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>
81 <TextBlock Text="0" Margin="10" Name="ClrMajorTextBlock" FontSize="36" TextAlignment="Center"/>
82 <TextBlock Text="Minor" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>
83 <TextBlock Text="0" Margin="10" Name="ClrMinorTextBlock" FontSize="36" TextAlignment="Center"/>
84 <TextBlock Text="Revision" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>
85 <TextBlock Text="0" Margin="10" Name="ClrRevisionTextBlock" FontSize="36" TextAlignment="Center"/>
86 <TextBlock Text="Build" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>
87 <TextBlock Text="0" Margin="10" Name="ClrBuildTextBlock" FontSize="36" TextAlignment="Center"/>
88 </StackPanel>
89 </Grid>
90 </controls:PivotItem>
91
92 <controls:PivotItem Header="unique ids">
93 <Grid>
94 <StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" Height="607" Width="456">
95 <TextBlock Text="Device Unique ID" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>
96 <TextBlock Text="0" Margin="10" Name="DeviceUniqueIDTextBlock" FontSize="36" TextAlignment="Center" TextWrapping="Wrap"/>
97 <TextBlock Text="Windows Live Anonymous ID" Margin="10" Foreground="{StaticResource PhoneAccentBrush}" FontSize="24" TextAlignment="Center"/>
98 <TextBlock Text="0" Margin="10" Name="WindowsLiveAnonymousIDTextBlock" FontSize="36" TextAlignment="Center" TextWrapping="Wrap"/>
99 </StackPanel>
100 </Grid>
101 </controls:PivotItem>
102 </controls:Pivot>
103 </Grid>
104 </phone:PhoneApplicationPage>
1 using System;
2 using System.Globalization;
3 using System.Windows;
4 using System.Windows.Threading;
5 using Microsoft.Phone.Info;
6
7 namespace ABSystemInfo
8 {
9 public partial class MainPage
10 {
11 readonly DispatcherTimer _timer;
12
13 private long _applicationCurrentMemoryUsage;
14 private long _applicationMemoryUsageLimit;
15 private long _applicationPeakMemoryUsage;
16 private long _deviceTotalMemory;
17
18 private const int AnidLength = 32;
19 private const int AnidOffset = 2;
20
21 public MainPage()
22 {
23 InitializeComponent();
24 LoadStaticInfo();
25 _timer = new DispatcherTimer();
26 _timer.Interval = new TimeSpan(0, 0, 1);
27 _timer.Tick += TimerTick;
28 _timer.Start();
29
30 }
31
32 void TimerTick(object sender, EventArgs e)
33 {
34 try
35 {
36 _applicationCurrentMemoryUsage = DeviceStatus.ApplicationCurrentMemoryUsage;
37 _applicationMemoryUsageLimit = DeviceStatus.ApplicationMemoryUsageLimit;
38 _applicationPeakMemoryUsage = DeviceStatus.ApplicationPeakMemoryUsage;
39
40 _deviceTotalMemory = DeviceStatus.DeviceTotalMemory;
41
42 ApplicationCurrentMemoryUsageTextBlock.Text = String.Format("{0} MB ({1} KB)", ((_applicationCurrentMemoryUsage / 1024) / 1024), (_applicationCurrentMemoryUsage / 1024));
43 ApplicationMemoryUsageLimitTextBlock.Text = String.Format("{0} MB ({1} KB)", ((_applicationMemoryUsageLimit / 1024) / 1024), (_applicationMemoryUsageLimit / 1024));
44 ApplicationPeakMemoryUsageTextBlock.Text = String.Format("{0} MB ({1} KB)", ((_applicationPeakMemoryUsage / 1024) / 1024), (_applicationPeakMemoryUsage / 1024));
45 DeviceTotalMemoryTextBlock.Text = String.Format("{0} MB ({1} KB)", ((_deviceTotalMemory / 1024) / 1024), (_deviceTotalMemory / 1024));
46
47 IsKeyboardDeployedTextBlock.Text = DeviceStatus.IsKeyboardDeployed.ToString(CultureInfo.InvariantCulture);
48 IsKeyboardPresentTextBlock.Text = DeviceStatus.IsKeyboardPresent.ToString(CultureInfo.InvariantCulture);
49 PowerSourceTextBlock.Text = DeviceStatus.PowerSource.ToString();
50 }
51 catch (Exception ex)
52 {
53 MessageBox.Show(ex.Message);
54 }
55 }
56
57 private void LoadStaticInfo()
58 {
59 DeviceFirmwareVersionTextBlock.Text = DeviceStatus.DeviceFirmwareVersion;
60 DeviceHardwareVersionTextBlock.Text = DeviceStatus.DeviceHardwareVersion;
61 DeviceManufacturerTextBlock.Text = DeviceStatus.DeviceManufacturer;
62 DeviceNameTextBlock.Text = DeviceStatus.DeviceName;
63
64 OperatingSystemPlatformTextBlock.Text = Environment.OSVersion.Platform.ToString();
65 OperatingSystemVersionTextBlock.Text = Environment.OSVersion.Version.ToString();
66
67 ClrBuildTextBlock.Text = Environment.Version.Build.ToString(CultureInfo.InvariantCulture);
68 ClrMajorTextBlock.Text = Environment.Version.Major.ToString(CultureInfo.InvariantCulture);
69 ClrMinorTextBlock.Text = Environment.Version.Minor.ToString(CultureInfo.InvariantCulture);
70 ClrRevisionTextBlock.Text = Environment.Version.Revision.ToString(CultureInfo.InvariantCulture);
71
72 string deviceUniqueId = String.Empty;
73 for (int i = 0; i < GetDeviceUniqueId().GetLength(0); i++)
74 {
75 deviceUniqueId += GetDeviceUniqueId().GetValue(i);
76 }
77
78 DeviceUniqueIDTextBlock.Text = deviceUniqueId;
79 WindowsLiveAnonymousIDTextBlock.Text =
80 GetWindowsLiveAnonymousId().ToString(CultureInfo.InvariantCulture);
81 }
82
83 //Note: to get a result requires ID_CAP_IDENTITY_DEVICE
84 // to be added to the capabilities of the WMAppManifest
85 // this will then warn users in marketplace
86
87 public static byte[] GetDeviceUniqueId()
88 {
89 byte[] result = null;
90 object uniqueId;
91 if (DeviceExtendedProperties.TryGetValue("DeviceUniqueId", out uniqueId))
92 result = (byte[])uniqueId;
93
94 return result;
95 }
96
97 // NOTE: to get a result requires ID_CAP_IDENTITY_USER
98 // to be added to the capabilities of the WMAppManifest
99 // this will then warn users in marketplace
100
101 public static string GetWindowsLiveAnonymousId()
102 {
103 string result = String.Empty;
104 object anid;
105 if (UserExtendedProperties.TryGetValue("ANID", out anid))
106 {
107 if (anid != null && anid.ToString().Length >= (AnidLength + AnidOffset))
108 {
109 result = anid.ToString().Substring(AnidOffset, AnidLength);
110 }
111 }
112
113 return result;
114 }
115 }
116 }
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/120761.html原文链接:https://javaforall.cn