精华内容
下载资源
问答
  • 怎么才能获取唯一CPU序列号,看到网上有说 Intel Pentium III 以后CPU唯一的序列号都获取了? 经过验证,用 wmic CPU get ProcessorID 命令得到的CPU序列号不是唯一的,想问问有什么方法可以得到CPU唯一的...
  • 根据硬盘的物理序列号CPU序列号生成唯一的注册码.zip
  • CPU序列号读取 c++

    热门讨论 2012-11-01 14:11:40
    在windows下获取CPU序列号 CPU序列号读取 c++编程
  • 读取CPU唯一序列号

    千次阅读 2018-11-27 10:53:18
    using System.Management; public string GetCpuID()  {  try  {  //获取CPU序列号代码  string cpuInfo = "";//cpu序列号  ManagementClass mc =...

     using System.Management;

    public string GetCpuID()
            {
                try
                {
                    //获取CPU序列号代码
                    string cpuInfo = "";//cpu序列号
                  ManagementClass mc = new ManagementClass("Win32_Processor");
                    ManagementObjectCollection moc = mc.GetInstances();
                    foreach (ManagementObject mo in moc)
                    {
                        cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
                    }
                    moc = null;
                    mc = null;
                    return cpuInfo;
                }
                catch
                {
                    return "unknow";
                }
                finally
                {
                }
            }

     

    展开全文
  • 就是获取电脑唯一标识后将该值存入授权数据库,默认给当前电脑的使用时期为当前时间后一年,一年后登陆时能正常登陆(记录第一次使用这种场景) java代码 package org.wj.common.tool; import java.io.*; import ...

    在生产环境中,有时候会需要获取电脑唯一标识进行程序管理验证,比如一个程序,在A电脑上面只能允许正常登陆一年,到期后提示联系管理员等情况。就是获取电脑唯一标识后将该值存入授权数据库,默认给当前电脑的使用时期为当前时间后一年,一年后登陆时不能正常登陆(记录第一次使用这种场景)
    java代码

    package org.wj.common.tool;
    import java.io.*;
    import java.net.*;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.*;
    
    
    public class SerialNumberUtil {
    
    	/**
    	 * 获取主板序列号
    	 * @return
    	 */
    	public static String getMotherboardSN() {
    		String result = "";
    		try {
    			File file = File.createTempFile("realhowto", ".vbs");
    			file.deleteOnExit();
    			FileWriter fw = new FileWriter(file);
    
    			String vbs = "Set objWMIService = GetObject(\"winmgmts:\\\\.\\root\\cimv2\")\n"
    				+ "Set colItems = objWMIService.ExecQuery _ \n"
    				+ "   (\"Select * from Win32_BaseBoard\") \n"
    				+ "For Each objItem in colItems \n"
    				+ "    Wscript.Echo objItem.SerialNumber \n"
    				+ "    exit for  ' do the first cpu only! \n" + "Next \n";
    
    			fw.write(vbs);
    			fw.close();
    			String path = file.getPath().replace("%20", " ");
    			Process p = Runtime.getRuntime().exec(
    				"cscript //NoLogo " + path);
    			BufferedReader input = new BufferedReader(new InputStreamReader(
    				p.getInputStream()));
    			String line;
    			while ((line = input.readLine()) != null) {
    				result += line;
    			}
    			input.close();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return result.trim();
    	}
    
    	/**
    	 * 获取硬盘序列号(该方法获取的是 盘符的逻辑序列号,并不是硬盘本身的序列号)
    	 * 硬盘序列号还在研究中
    	 * @param drive 盘符
    	 * @return
    	 */
    	public static String getHardDiskSN(String drive) {
    		String result = "";
    		try {
    			File file = File.createTempFile("realhowto", ".vbs");
    			file.deleteOnExit();
    			FileWriter fw = new FileWriter(file);
    
    			String vbs = "Set objFSO = CreateObject(\"Scripting.FileSystemObject\")\n"
    				+ "Set colDrives = objFSO.Drives\n"
    				+ "Set objDrive = colDrives.item(\""
    				+ drive
    				+ "\")\n"
    				+ "Wscript.Echo objDrive.SerialNumber"; // see note
    			fw.write(vbs);
    			fw.close();
    			String path = file.getPath().replace("%20", " ");
    			Process p = Runtime.getRuntime().exec(
    				"cscript //NoLogo " + path);
    			BufferedReader input = new BufferedReader(new InputStreamReader(
    				p.getInputStream()));
    			String line;
    			while ((line = input.readLine()) != null) {
    				result += line;
    			}
    			input.close();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return result.trim();
    	}
    
    	/**
    	 * 获取CPU序列号
    	 * @return
    	 */
    	public static String getCPUSerial() {
    		String result = "";
    		try {
    			File file = File.createTempFile("tmp", ".vbs");
    			file.deleteOnExit();
    			FileWriter fw = new FileWriter(file);
    			String vbs = "Set objWMIService = GetObject(\"winmgmts:\\\\.\\root\\cimv2\")\n"
    				+ "Set colItems = objWMIService.ExecQuery _ \n"
    				+ "   (\"Select * from Win32_Processor\") \n"
    				+ "For Each objItem in colItems \n"
    				+ "    Wscript.Echo objItem.ProcessorId \n"
    				+ "    exit for  ' do the first cpu only! \n" + "Next \n";
    
    			// + "    exit for  \r\n" + "Next";
    			fw.write(vbs);
    			fw.close();
    			String path = file.getPath().replace("%20", " ");
    			Process p = Runtime.getRuntime().exec(
    				"cscript //NoLogo " + path);
    			BufferedReader input = new BufferedReader(new InputStreamReader(
    				p.getInputStream()));
    			String line;
    			while ((line = input.readLine()) != null) {
    				result += line;
    			}
    			input.close();
    			file.delete();
    		} catch (Exception e) {
    			e.fillInStackTrace();
    		}
    		if (result.trim().length() < 1 || result == null) {
    			result = "无CPU_ID被读取";
    		}
    		return result.trim();
    	}
    
    	private static List<String> getLocalHostLANAddress()	throws UnknownHostException, SocketException {
    		List<String> ips = new ArrayList<String>();
    		Enumeration<NetworkInterface> interfs = NetworkInterface.getNetworkInterfaces();
    		while (interfs.hasMoreElements()) {
    			NetworkInterface interf = interfs.nextElement();
    			Enumeration<InetAddress> addres = interf.getInetAddresses();
    			while (addres.hasMoreElements()) {
    				InetAddress in = addres.nextElement();
    				if (in instanceof Inet4Address) {
    //					System.out.println("v4:" + in.getHostAddress());
    					if(!"127.0.0.1".equals(in.getHostAddress())){
    						ips.add(in.getHostAddress());
    					}
    				}
    			}
    		}
    		return ips;
    	}
    
    	/**
    	 * MAC
    	 * 通过jdk自带的方法,先获取本机所有的ip,然后通过NetworkInterface获取mac地址
    	 * @return
    	 */
    	public static String getMac() {
    		try {
    			String resultStr = "";
    			List<String> ls = getLocalHostLANAddress();
    			for(String str : ls){
    				InetAddress ia = InetAddress.getByName(str);// 获取本地IP对象
    				// 获得网络接口对象(即网卡),并得到mac地址,mac地址存在于一个byte数组中。
    				byte[] mac = NetworkInterface.getByInetAddress(ia)
    					.getHardwareAddress();
    				// 下面代码是把mac地址拼装成String
    				StringBuilder sb = new StringBuilder();
    				for (int i = 0; i < mac.length; i++) {
    					if (i != 0) {
    						sb.append("-");
    					}
    					// mac[i] & 0xFF 是为了把byte转化为正整数
    					String s = Integer.toHexString(mac[i] & 0xFF);
    					sb.append(s.length() == 1 ? 0 + s : s);
    				}
    				// 把字符串所有小写字母改为大写成为正规的mac地址并返回
    				resultStr += sb.toString().toUpperCase()+",";
    			}
    			return resultStr;
    		} catch (Exception ex) {
    			ex.printStackTrace();
    		}
    		return null;
    	}
    
    	/***************************linux*********************************/
    
    	public static String executeLinuxCmd(String cmd)  {
    		try {
    //			System.out.println("got cmd job : " + cmd);
    			Runtime run = Runtime.getRuntime();
    			Process process;
    			process = run.exec(cmd);
    			InputStream in = process.getInputStream();
    			BufferedReader bs = new BufferedReader(new InputStreamReader(in));
    			StringBuffer out = new StringBuffer();
    			byte[] b = new byte[8192];
    			for (int n; (n = in.read(b)) != -1;) {
    				out.append(new String(b, 0, n));
    			}
    
    			in.close();
    			process.destroy();
    			return out.toString();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return null;
    	}
    
    	/**
    	 *
    	 * @param cmd 命令语句
    	 * @param record 要查看的字段
    	 * @param symbol 分隔符
    	 * @return
    	 */
    	public static String getSerialNumber(String cmd ,String record,String symbol) {
    		String execResult = executeLinuxCmd(cmd);
    		String[] infos = execResult.split("\n");
    
    		for(String info : infos) {
    			info = info.trim();
    			if(info.indexOf(record) != -1) {
    				info.replace(" ", "");
    				String[] sn = info.split(symbol);
    				return sn[1];
    			}
    		}
    
    		return null;
    	}
    
    	/**
    	 * 获取CPUID、硬盘序列号、MAC地址、主板序列号
    	 * @return
    	 */
    	public static Map<String, String> getAllSn(){
    		String os = System.getProperty("os.name");
    		os = os.toUpperCase();
    //		System.out.println(os);
    
    		Map<String, String> snVo = new HashMap<String, String>();
    
    		if("LINUX".equals(os)) {
    			System.out.println("=============>for linux");
    			String cpuid = 				getSerialNumber("dmidecode -t processor | grep 'ID'", "ID",":");
    			System.out.println("cpuid : "+ cpuid);
    			String mainboardNumber = 	getSerialNumber("dmidecode |grep 'Serial Number'", "Serial Number",":");
    			System.out.println("mainboardNumber : "+ mainboardNumber);
    			String diskNumber = 		getSerialNumber("fdisk -l", "Disk identifier",":");
    			System.out.println("diskNumber : "+ diskNumber);
    			String mac = 				getSerialNumber("ifconfig -a", "ether"," ");
    
    			snVo.put("cpuid",cpuid.toUpperCase().replace(" ", ""));
    			snVo.put("diskid",diskNumber.toUpperCase().replace(" ", ""));
    			snVo.put("mac",mac.toUpperCase().replace(" ", ""));
    			snVo.put("mainboard",mainboardNumber.toUpperCase().replace(" ", ""));
    		}else {
    			System.out.println("=============>for windows");
    			String cpuid = SerialNumberUtil.getCPUSerial();
    			String mainboard = SerialNumberUtil.getMotherboardSN();
    			String disk = SerialNumberUtil.getHardDiskSN("c");
    			String mac = SerialNumberUtil.getMac();
    
    //			System.out.println("CPU  SN:" + cpuid);
    //			System.out.println("主板  SN:" + mainboard);
    //			System.out.println("C盘   SN:" + disk);
    //			System.out.println("MAC  SN:" + mac);
    
    			snVo.put("cpuid",cpuid.toUpperCase().replace(" ", ""));
    			snVo.put("diskid",disk.toUpperCase().replace(" ", ""));
    			snVo.put("mac",mac.toUpperCase().replace(" ", ""));
    			snVo.put("mainboard",mainboard.toUpperCase().replace(" ", ""));
    		}
    
    		return snVo;
    	}
    	/**
    	 * linux
    	 * cpuid : dmidecode -t processor | grep 'ID'
    	 * mainboard : dmidecode |grep 'Serial Number'
    	 * disk : fdisk -l
    	 * mac : ifconfig -a
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		getAllSn();
    	}
    	/**
    	* @Description:获取唯一标识
    	* @Param: []
    	* @return: java.lang.String
    	* @Author: wj
    	* @Date: 2019-09-04
    	*/
    	public static String  getmainboard() {
    		//主板id
    		String mainboard=null;
    		//C盘id
    		String disk=null;
    		//macid
    		String mac=null;
    		Map<String, String>  sno=SerialNumberUtil.getAllSn();
    		for(String key : sno.keySet()){
    			String value = sno.get(key);
    			if(("mainboard").equals(key)){
    				mainboard=value;
    			}else if(("diskid").equals(key)){
    				disk=value;
    			}
    		}
    		return mainboard+disk;
    
    	}
    
    	public  static  String nextYear(){
    		Date date = new Date();
    		Calendar cal = Calendar.getInstance();
    		cal.setTime(date);
    		cal.add(Calendar.YEAR, 1);//增加一年
    		SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
    		//java.util.Date对象
    		Date date1=new Date();
    		try {
    			date1 = (Date) sdf.parse(cal.getTime().toString());
    		} catch (ParseException e) {
    			e.printStackTrace();
    		}
    		String formatStr2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date1);
    		return formatStr2;
    	}
    ``代码链接:
    https://download.csdn.net/download/weixin_44244991/12477368
    
    
    
    展开全文
  • c++获取CPU序列号\C盘卷标号源代码,这个是序列号的,卷标号的看注释,把注释掉的恢复。cpu序列号唯一标识,可用于开发注册码。里面还有bstr与字符串的转换,在注释里
  • 易语言取CPU序列号特征字

    千次阅读 2020-06-09 18:04:31
    通过易语言支持库、VB、CMD,汇编等方法获取CPU的序列号,从而转化为特征字,方便我们硬件的绑定注册使用。 ... 易语言有一个数据类型就是CPU,...子程序 CPU_取序列号_cmd, 文本型, 公开, 使用CMD来获取CPU序列号...

    通过易语言支持库 、VB、CMD,汇编等方法获取CPU的序列号,从而转化为特征字,方便我们硬件的绑定注册使用。

    511遇见(www.511yj.com)

    511遇见易语言软件本地注册验证

     易语言有一个数据类型就是CPU,我们可以直接调用它的序列号

    511遇见(www.511yj.com)

    .版本 2
    .支持库 eAPI
    
    .局部变量 CPU信息, CPU信息
    
    取CPU信息 (CPU信息)
    编辑框1.内容 = CPU信息.序列号
    

    使用CMD来获取CPU序列号

    511遇见(www.511yj.com)

    .版本 2
    
    .子程序 CPU_取序列号_cmd, 文本型, 公开, 使用CMD来获取CPU序列号
    .局部变量 a, 文本型
    
    a = 删全部空 (取DOS返回 (“wmic CPU get ProcessorID”))
    a = 子文本替换 (a, #换行符, “#”, , , 真)
    a = 文本_取出中间文本 (a, “#”, “#”, , )
    返回 (a)
    

    易语言执行 VBScript调用

    511遇见(www.511yj.com)

    .版本 2
    
    .子程序 VB_取硬件信息, 文本型, 公开
    .参数 类型, 文本型, 可空, 默认 #磁盘序列号
    .局部变量 VBScript, 对象
    
    .如果 (是否为空 (类型))
        类型 = #磁盘序列号
    .否则
        .如果真 (类型 ≠ #MAC 且 类型 ≠ #CPUID 且 类型 ≠ #磁盘序列号 且 类型 ≠ #声卡 且 类型 ≠ #显卡 且 类型 ≠ #BIOS)
            类型 = #磁盘序列号
        .如果真结束
    
    .如果结束
    
    VBScript.创建 (“ScriptControl”, )
    VBScript.写属性 (“Language”, “VBScript”)
    VBScript.数值方法 (“ExecuteStatement”, #GetTrait)
    返回 (删首尾空 (VBScript.通用方法 (“Run”, “GetTrait”, 类型).取文本 ()))
    
    

     系统使用汇编方式获取CPUID

    511遇见(www.511yj.com)

    .版本 2
    
    .子程序 CPU_取序列号_汇编, 文本型, 公开, 系统使用汇编方式获取CPUID
    .局部变量 s1, 整数型, , , -4
    .局部变量 s2, 整数型, , , -8
    
    置入代码 ({ 184, 1, 0, 0, 0 })  ' mov eax,01h
    置入代码 ({ 49, 201 })  ' xor ecx,ecx
    置入代码 ({ 49, 210 })  ' xor edx,edx
    置入代码 ({ 15, 162 })  ' cpuid
    置入代码 ({ 137, 85, 252 })  ' mov dword [ebp-4],edx
    置入代码 ({ 137, 69, 248 })  ' mov dword [ebp-8],eax
    返回 (取八位十六进制 (s1) + 取八位十六进制 (s2))
    

    调用源码:

    .版本 2
    .支持库 eAPI
    .支持库 spec
    
    .程序集 窗口程序集_启动窗口
    
    .子程序 _按钮1_被单击, , , 易-CPU序列号
    .局部变量 CPU信息, CPU信息
    
    取CPU信息 (CPU信息)
    编辑框1.内容 = CPU信息.序列号
    
    .子程序 _按钮2_被单击, , , CMD_CPU序列号
    
    编辑框2.内容 = CPU_取序列号_cmd ()
    
    .子程序 _按钮3_被单击, , , VB_CPU序列号
    
    编辑框3.内容 = CPU_取序列号_VB ()
    
    .子程序 _按钮4_被单击, , , 汇编_CPU序列号
    
    编辑框4.内容 = CPU_取序列号_汇编 ()
    
    .子程序 _按钮5_被单击, , , 综合—CPU特征字
    
    编辑框5.内容 = 到文本 (CPU_取特征所有 ())
    调试输出 (取文本长度 (编辑框5.内容))
    
    

    参考源码:1、511遇见易语言软件注册本地验证-2-取CPU序列号特征字

                     2、511遇见易语言软件注册教程

    展开全文
  • DELPHI编写的获得CPU序列号,用于加密用,可以结合硬盘序列号,生成唯一标示,限制程序在某台计算机使用
  • 获取CPU序列号

    2011-04-13 17:07:20
    * 获取CPU序列号 * * @return CPU序列号(16位) * 读取失败为"0000000000000000" */ public static String getCPUSerial() { String str = "", strCPU = "", ...
    /**
    

    * 获取CPU序列号

    *

    * @return CPU序列号(16位)

    * 读取失败为"0000000000000000"

    */

    public static String getCPUSerial() {

    String str = "", strCPU = "", cpuAddress = "0000000000000000";

    try {

    //读取CPU信息

    Process pp = Runtime.getRuntime().exec("cat /proc/cpuinfo");

    InputStreamReader ir = new InputStreamReader(pp.getInputStream());

    LineNumberReader input = new LineNumberReader(ir);

    //查找CPU序列号

    for (int i = 1; i < 100; i++) {

    str = input.readLine();

    if (str != null) {

    //查找到序列号所在行

    if (str.indexOf("Serial") > -1) {

    //提取序列号

    strCPU = str.substring(str.indexOf(":") + 1,

    str.length());

    //去空格

    cpuAddress = strCPU.trim();

    break;

    }

    }else{

    //文件结尾

    break;

    }

    }

    } catch (IOException ex) {

    //赋予默认值

    ex.printStackTrace();

    }

    return cpuAddress;

    }

    1)android 获取设备型号、OS版本号:

    import android.os.Build;
    .....
    Build bd = new Build();
    String model = bd.MODEL;
    android.os.Build.MODEL
    android.os.Build.VERSION.RELEASE

    2)android 获取设备Id等信息:
    1.需要在AndroidManifest.xml中添加权限。

    2.代码:
    /*
    * 电话状态:
    * 1.tm.CALL_STATE_IDLE=0 无活动
    * 2.tm.CALL_STATE_RINGING=1 响铃
    * 3.tm.CALL_STATE_OFFHOOK=2 摘机
    */
    tm.getCallState();//int
    /*
    * 电话方位:
    *
    */
    tm.getCellLocation();//CellLocation
    /*
    * 唯一的设备ID:
    * GSM手机的 IMEI 和 CDMA手机的 MEID.
    * Return null if device ID is not available.
    */
    tm.getDeviceId();//String
    /*
    * 设备的软件版本号:
    * 例如:the IMEI/SV(software version) for GSM phones.
    * Return null if the software version is not available.
    */
    tm.getDeviceSoftwareVersion();//String
    /*
    * 手机号:
    * GSM手机的 MSISDN.
    * Return null if it is unavailable.
    */
    tm.getLine1Number();//String
    /*
    * 附近的电话的信息:
    * 类型:List
    * 需要权限:android.Manifest.permission#ACCESS_COARSE_UPDATES
    */
    tm.getNeighboringCellInfo();//List
    /*
    * 获取ISO标准的国家码,即国际长途区号。
    * 注意:仅当用户已在网络注册后有效。
    * 在CDMA网络中结果也许不可靠。
    */
    tm.getNetworkCountryIso();//String
    /*
    * MCC+MNC(mobile country code + mobile network code)
    * 注意:仅当用户已在网络注册时有效。
    * 在CDMA网络中结果也许不可靠。
    */
    tm.getNetworkOperator();//String
    /*
    * 按照字母次序的current registered operator(当前已注册的用户)的名字
    * 注意:仅当用户已在网络注册时有效。
    * 在CDMA网络中结果也许不可靠。
    */
    tm.getNetworkOperatorName();//String
    /*
    * 当前使用的网络类型:
    * 例如: NETWORK_TYPE_UNKNOWN 网络类型未知 0
    NETWORK_TYPE_GPRS GPRS网络 1
    NETWORK_TYPE_EDGE EDGE网络 2
    NETWORK_TYPE_UMTS UMTS网络 3
    NETWORK_TYPE_HSDPA HSDPA网络 8
    NETWORK_TYPE_HSUPA HSUPA网络 9
    NETWORK_TYPE_HSPA HSPA网络 10
    NETWORK_TYPE_CDMA CDMA网络,IS95A 或 IS95B. 4
    NETWORK_TYPE_EVDO_0 EVDO网络, revision 0. 5
    NETWORK_TYPE_EVDO_A EVDO网络, revision A. 6
    NETWORK_TYPE_1xRTT 1xRTT网络 7
    */
    tm.getNetworkType();//int
    /*
    * 手机类型:
    * 例如: PHONE_TYPE_NONE 无信号
    PHONE_TYPE_GSM GSM信号
    PHONE_TYPE_CDMA CDMA信号
    */
    tm.getPhoneType();//int
    /*
    * Returns the ISO country code equivalent for the SIM provider's country code.
    * 获取ISO国家码,相当于提供SIM卡的国家码。
    *
    */
    tm.getSimCountryIso();//String
    /*
    * Returns the MCC+MNC (mobile country code + mobile network code) of the provider of the SIM. 5 or 6 decimal digits.
    * 获取SIM卡提供的移动国家码和移动网络码.5或6位的十进制数字.
    * SIM卡的状态必须是 SIM_STATE_READY(使用getSimState()判断).
    */
    tm.getSimOperator();//String
    /*
    * 服务商名称:
    * 例如:中国移动、联通
    * SIM卡的状态必须是 SIM_STATE_READY(使用getSimState()判断).
    */
    tm.getSimOperatorName();//String
    /*
    * SIM卡的序列号:
    * 需要权限:READ_PHONE_STATE
    */
    tm.getSimSerialNumber();//String
    /*
    * SIM的状态信息:
    * SIM_STATE_UNKNOWN 未知状态 0
    SIM_STATE_ABSENT 没插卡 1
    SIM_STATE_PIN_REQUIRED 锁定状态,需要用户的PIN码解锁 2
    SIM_STATE_PUK_REQUIRED 锁定状态,需要用户的PUK码解锁 3
    SIM_STATE_NETWORK_LOCKED 锁定状态,需要网络的PIN码解锁 4
    SIM_STATE_READY 就绪状态 5
    */
    tm.getSimState();//int
    /*
    * 唯一的用户ID:
    * 例如:IMSI(国际移动用户识别码) for a GSM phone.
    * 需要权限:READ_PHONE_STATE
    */
    tm.getSubscriberId();//String
    /*
    * 取得和语音邮件相关的标签,即为识别符
    * 需要权限:READ_PHONE_STATE
    */
    tm.getVoiceMailAlphaTag();//String
    /*
    * 获取语音邮件号码:
    * 需要权限:READ_PHONE_STATE
    */
    tm.getVoiceMailNumber();//String
    /*
    * ICC卡是否存在
    */
    tm.hasIccCard();//boolean
    /*
    * 是否漫游:
    * (在GSM用途下)
    */
    tm.isNetworkRoaming();//
    3)获取AndroidManifest.xml的信息
    1.versionCode
    getPackageManager().getPackageInfo(packageName, 0).versionCode
    可以用Context.gerPackageName()取得packageName
    2.versionName
    getPackageManager().getPackageInfo(packageName, 0).versionName
    getPackageManager().getPackageInfo(pName, PackageManager.GET_CONFIGURATIONS);
    4)Android判断应用是否存在
    1.通过包名判断
    public boolean checkBrowser(String packageName) {
    if (packageName == null || "".equals(packageName))
    return false;
    try {
    ApplicationInfo info = getPackageManager().getApplicationInfo(
    packageName, PackageManager.GET_UNINSTALLED_PACKAGES);
    return true;
    } catch (NameNotFoundException e) {
    return false;
    }
    }
    2.通过Activity判断
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setClassName("com.android.settings", //$NON-NLS-1$
    "com.android.settings.InstalledAppDetails"); //$NON-NLS-1$
    intent.putExtra("com.android.settings.ApplicationPkgName", //$NON-NLS-1$
    mCurrentPkgName);
    List acts = getPackageManager().queryIntentActivities(
    intent, 0);
    if (acts.size() > 0) {
    startActivity(intent);
    } else {
    Toast.makeText(this,
    getString(R.string.failed_to_resolve_activity),
    Toast.LENGTH_SHORT).show();
    }
    5)获取设备屏幕分辨率
    首先我们需要用到的是DisplayMetrics这个类,它可以为我们获得手机屏幕属性,这里将其所在类导入。
    import android.util.DisplayMetrics;
    得到实例对象。
    DisplayMetrics dm = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(dm);
    得到手机屏幕高度:
    dm.heightPixels;
    得到手机屏幕宽度:
    dm.widthPixels;
    得到以上手机屏幕的高度跟宽度后,即可以通过这两个值按照比例还设定程序布局中空间的大小。
    6)获取CPU序列号

    /**
    * 获取CPU序列号
    *
    * @return CPU序列号(16位)
    * 读取失败为"0000000000000000"
    */
    public static String getCPUSerial() {
    String str = "", strCPU = "", cpuAddress = "0000000000000000";
    try {
    //读取CPU信息
    Process pp = Runtime.getRuntime().exec("cat /proc/cpuinfo");
    InputStreamReader ir = new InputStreamReader(pp.getInputStream());
    LineNumberReader input = new LineNumberReader(ir);
    //查找CPU序列号
    for (int i = 1; i
    str = input.readLine();
    if (str != null) {
    //查找到序列号所在行
    if (str.indexOf("Serial") > -1) {
    //提取序列号
    strCPU = str.substring(str.indexOf(":") + 1,
    str.length());
    //去空格
    cpuAddress = strCPU.trim();
    break;
    }
    }else{
    //文件结尾
    break;
    }
    }
    } catch (IOException ex) {
    //赋予默认值
    ex.printStackTrace();
    }
    return cpuAddress;
    }

    7)获取位置信息: locationManager
    1.获取LocationManager对象
    String serviceString = Context.LOCATION_SERVICE;
    LocationManager LocationManager = (LocationManager)getSystemService(serviceString);
    2.选择定位方法
    2.1 GPS_PROVIDER: GPS
    2.2 NETWORK_PROVIDER: NETWORK
    以network为例:
    String provider = LocationManager.NETWORK_PROVIDER
    Location location = locationManager.getLaskKnownLocation(provider);
    double lat = location.getLatitude();
    double lng = location.getLongitude();
    8)当前时间和时区

    System.currentTimeMillis()获取当前时间
    时区:
    TimeZone.getDefault();
    展开全文
  • VC读取硬盘序列号与CPU序列号

    千次阅读 2019-03-06 09:44:07
    所需头文件 #include "stdafx.h" // VC6 #include &lt;iostream&gt;...读取硬盘序列号 ...硬盘序列号目前只能使用在windows平台,其他平台目前在研究。 #define DFP_GET_VE...
  • stm32获取cpu序列号

    2021-01-19 11:28:46
    ● 用来作为序列号(例如USB字符序列号或者其他的终端应用) ● 用来作为密码,在编写闪存时,将此唯一标识与软件加解密算法结合使用,提高代码在闪存存储器内的安全性。 ● 用来激活带安全机制的自举过程 96位的产品...
  • Windows/Linux获取Mac地址和CPU序列号实现

    千次阅读 多人点赞 2020-09-29 19:53:44
    UUID(Universally Unique Identifier)即通用唯一标识符,是指在一台机器上生成的数字,保证在全球范围的唯一...一般可通过获取设备的MAC地址+设备的CPU序列号作为设备的唯一标识符。 MAC地址(Media Access Control Ad
  • <转>VC之获取CPU序列号

    2017-11-27 15:02:00
    首先说明,CPU序列号并不是全球唯一的,以Intel为例,其不同型号的CPU序列号肯定不同,但保证同型号的CPU序列号也各相同,但据说P3后都是全球唯一的,一帆风没有详细考证。CPU序列号有一个好处就是非常难以修改...
  • 获取CPU序列号、硬盘号、主板号,编译可用
  • 前几天经过查资料,得到网络...CPU序列号是一个建立在处理器内部的、唯一的、能被修改的编号。它由96位数字组成。高32位是CPUID,用来识别CPU类型。低64位每个处理器都不同,唯一地代表了该处理器。CPU号可以用来识别
  • 调用控制台来获取CPU序列号/硬盘号 不同PC的硬盘数量可能不同 若有多个硬盘,此处的输出将多个硬盘号拼接到了一起 若需拆分可自行修改 #if !defined(AFX_14BEC153_17B9_47BE_845F_71A27BF26B59__INCLUDED_) #define ...
  • C#得到Cpu序列号

    千次阅读 2014-02-14 11:20:16
    private void GetInfo() { string cpuInfo = "";//cpu序列号 ManagementClass cimobject = new ManagementClass("Win32_Processor"); ManagementObjectCollection moc = ci
  • DelphiXE取CPU序列号.txt

    2019-11-20 14:48:42
    文档里面是通过部分汇编获取CPU唯一编号,代码需要部分调试,可以使用,两种方法,可以根据所需进行调试
  • 获取CPU序列号

    2017-04-10 16:58:43
    获取CPU序列号
  • 序列号相当于电脑的身份证号,是硬件出厂时,厂商写在硬件里的唯一识别码,具有唯一性和可修改性。很多正版软件以此来识别用户电脑,限制安装。
  • CPU序列号 wmic cpu get processorid 现在也不唯一,比如联想同款机器,因为CPU批量生产,id也是一样 操作系统信息 systeminfo 查看硬件信息 dxdiag 转载于:https://www.cnblogs.com/yubufan/p/3721416.html...
  • 纯java获取CPU序列号,生成机器码

    万次阅读 2017-07-04 17:32:10
    用于生成机器码感觉用mac靠谱,因为mac能改,(除CPU序列号外,还可以获得主板序列号。) Java代码 public static void main(String[] args) { // TODO Auto-generated method stub try { long ...
  • 计算机上有一些唯一的标志符,比如网卡MAC地址,CPU序列号,硬盘序列等。有时候为了开发授权码或者注册码,需要根据具体计算机进行授权,这是就需要获取这些唯一标识信息了。 首先,是网卡MAC地址的获取。网卡其实...
  • CPU都有一个唯一的ID号,称CPUID,是在制造CPU的时候,由厂家置入到CPU内部的。
  • CPU序列号是一个建立在处理器内部的、唯一的、能被修改的编号。它由96位数字组成。高32位是CPU ID,用来识别CPU类型。低64位每个处理器都不同,唯一地代表了该处理器。CPU号可以用来识别每一个处理器。为了适应这...
  • C++获取计算机的CPU序列号,硬盘序列号(无需管理权限),网卡MAC地址,在vs2005环境下编译通过,已在win10,win7系统测试通过。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,480
精华内容 4,992
关键字:

cpu序列号不唯一