WINCE 获取智能设备唯一编号

来源:互联网 发布:nginx解析其他网站 编辑:程序博客网 时间:2024/05/20 02:28
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Runtime.InteropServices;//提供了一个方法集,这些方法用于分配非托管内存、复制非托管内存块、将托管类型转换为非托管类型,此外还提供了在与非托管代码交互时使用的其他杂项方法namespace LogisticsManage{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        [DllImport("coredll.dll")]        private extern static int GetDeviceUniqueID([In, Out] byte[] appdata,                                                    int cbApplictionData,                                                    int dwDeviceIDVersion,                                                    [In, Out] byte[] deviceIDOuput,                                                    out uint pcbDeviceIDOutput);        private void button1_Click(object sender, EventArgs e)        {            byte[] buffer = GetDeviceID("MyAppString");            StringBuilder sb = new StringBuilder();            for (int x = 0; x < buffer.Length; x++)            {                //sb.Append('{');                sb.Append(string.Format("{0:x2}", buffer[x]));                //sb.Append("} ");            }            textBox1.Text = sb.ToString();        }        private byte[] GetDeviceID(string AppString)        {            // Call the GetDeviceUniqueID            byte[] AppData = new byte[AppString.Length];            for (int count = 0; count < AppString.Length; count++)                AppData[count] = (byte)AppString[count];            int appDataSize = AppData.Length;            byte[] DeviceOutput = new byte[20];            uint SizeOut = 20;            GetDeviceUniqueID(AppData, appDataSize, 1, DeviceOutput, out SizeOut);            return DeviceOutput;        }    }}