If IsActivated() = False Then
;InstallProductKey($OSkey) ; installs a product key and also activates it
Else
MsgBox(,'','ssssss os')
EndIf If OfficeIsActivated() = False Then
;InstallOfficeProductKey($officekey) ; installs a product key and also activates it
Else
MsgBox(,'','ssssss offf')
EndIf Func IsActivated()
$oWMIService = ObjGet("winmgmts:\\.\root\cimv2")
If IsObj($oWMIService) Then
$oCollection = $oWMIService.ExecQuery("SELECT Description, LicenseStatus, GracePeriodRemaining FROM SoftwareLicensingProduct WHERE PartialProductKey <> null")
If IsObj($oCollection) Then
For $oItem In $oCollection
Switch $oItem.LicenseStatus
Case
ConsoleWrite("Unlicensed" & @CRLF)
Return False
Case
If $oItem.GracePeriodRemaining Then
If StringInStr($oItem.Description, "TIMEBASED_") Then
ConsoleWrite("Timebased activation will expire in " & $oItem.GracePeriodRemaining & " minutes" & @CRLF)
Return False
Else
ConsoleWrite("Volume activation will expire in " & $oItem.GracePeriodRemaining & " minutes" & @CRLF)
Return False
EndIf
Else
ConsoleWrite("The machine is permanently activated." & @CRLF)
Return True
EndIf
Case
ConsoleWrite("Initial grace period ends in " & $oItem.GracePeriodRemaining & " minutes" & @CRLF)
Return False
Case
ConsoleWrite("Additional grace period ends in " & $oItem.GracePeriodRemaining & " minutes" & @CRLF)
Return False
Case
ConsoleWrite("Non-genuine grace period ends in " & $oItem.GracePeriodRemaining & " minutes" & @CRLF)
Return False
Case
ConsoleWrite("Windows is in Notification mode" & @CRLF)
Return False
Case
ConsoleWrite("Extended grace period ends in " & $oItem.GracePeriodRemaining & " minutes" & @CRLF)
Return False
EndSwitch
Next
EndIf
EndIf
EndFunc Func OfficeIsActivated()
$oWMIService = ObjGet("winmgmts:\\.\root\cimv2")
If IsObj($oWMIService) Then
$oCollection = $oWMIService.ExecQuery("SELECT Description, LicenseStatus, GracePeriodRemaining FROM OfficeSoftwareProtectionProduct WHERE PartialProductKey <> null")
If IsObj($oCollection) Then
For $oItem In $oCollection
Switch $oItem.LicenseStatus
Case
ConsoleWrite(" ---UNLICENSED--- " & @CRLF)
Return False
Case
ConsoleWrite(" ---LICENSED--- " & @CRLF)
;If licSr = Then
; WScript.Echo MSG_ERRCODE & licSr & " as licensed"
;End If
Return True
Case
ConsoleWrite("---OOB_GRACE--- Initial grace period ends in " & $oItem.GracePeriodRemaining & " minutes" & @CRLF)
Return False
Case
ConsoleWrite("---OOT_GRACE--- Initial grace period ends in " & $oItem.GracePeriodRemaining & " minutes" & @CRLF)
Return False
Case
ConsoleWrite("---NON_GENUINE_GRACE--- Grace period ends in " & $oItem.GracePeriodRemaining & " minutes" & @CRLF)
Return False
Case
ConsoleWrite("---NOTIFICATIONS--- Grace period ends in " & $oItem.GracePeriodRemaining & " minutes" & @CRLF)
Return False
Case
ConsoleWrite("---EXTENDED GRACE--- Extended grace period ends in " & $oItem.GracePeriodRemaining & " minutes" & @CRLF)
Return False
Case Else
ConsoleWrite("---UNKNOWN---" & @CRLF)
Return False
EndSwitch
Next
EndIf
EndIf
EndFunc

AU3获取系统激活信息的更多相关文章

  1. ThinPHP命名空间,连接数据库是要修改的配置文件,Model数据模型层,跨控制器调用,如何获取系统常量信息,

    一.命名空间(主要是为了实现自动加载类) *命名空间(相当于虚拟的目录),为了让类有一个统一的文件夹来管理(可以自动加载'类'),每个文件都要有命名空间*tp如何做命名空间:*TP框架下有一个初始命名 ...

  2. Linux sysinfo获取系统相关信息

    Linux中,可以用sysinfo来获取系统相关信息. #include <stdio.h> #include <stdlib.h> #include <errno.h& ...

  3. android 获取系统硬件信息

    一,首先设置权限访问: <uses-permission android:name="android.permission.READ_PHONE_STATE" />  ...

  4. ThinkPHP框架 3.2.2 获取系统常量信息 连接数据库 命名空间的理解

    获取系统常量信息 随便一个方法里加上这句话都能获取到系统常量信息!! var_dump(get_defined_constants()); <?php namespace Admin\Contr ...

  5. 获取系统相关信息 (CPU使用率 内存使用率 系统磁盘大小)

    引言 在软件开个过程中,对于软件的稳定性和使用率也是我们需要关注的 .  使用sigar来监控,简单方便!  使用说明:下载sigar jar及配合sigar的dll文件来用,需要将dll文件放到JD ...

  6. 通过java的Runtime.getRuntime()和System.getProperties()来获取系统的信息

    第一种,通过Runtime.getRuntime()来获取系统信息. 通过java来获取系统以下的信息: 主机名: OS 名称:         OS 版本: OS 制造商: OS 配置: 独立工作站 ...

  7. Delphi使用两种不同方法获取系统端口信息--(装载)

    Delphi使用两种方法获取windows系统的端口,还可测试发送消息,点击获取端口信息后,可依次得到如下信息:DCB结构大小.波特率大小.XON的临界值.XOFF的临界值.字符位数.奇偶检验位.停止 ...

  8. Android中获取系统内存信息以及进程信息-----ActivityManager的使用(一)

    本节内容主要是讲解ActivityManager的使用,通过ActivityManager我们可以获得系统里正在运行的activities,包括 进程(Process)等.应用程序/包.服务(Serv ...

  9. Revit二次开发-根据Element获取系统族信息

    Element element = doc.getElement(elementId); Autodesk.Revit.DB.Parameter familyType = element.get_Pa ...

随机推荐

  1. 查看.Net Framework版本号

    目录 摘要 .NET Framework 的版本 确定计算机上安装的 .NET Framework 版本 补充几个查看.Net Framework版本号 概要 本文描述如何确定计算机上安装的 Micr ...

  2. Mxgraph使用总结二

    1 新建画板,画板相关操作 var container = document.getElementById("main"); //设置背景样式 container.style.ba ...

  3. Ubuntu 16.04安装Elasticsearch,Logstash和Kibana(ELK)Filebeat

    https://www.howtoing.com/how-to-install-elasticsearch-logstash-and-kibana-elk-stack-on-ubuntu-16-04 ...

  4. HDU5475(线段树)

    An easy problem Time Limit: 8000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  5. 模块化方案esl以及amd的依赖方式

    来自AMD设计思想的总结和思考 在之前了解es6模块化的时候有遇到过依赖循环的问题,在es6中对于模块是引用性的,而当时于es6模块化做对比的commonjs(CMD规范)对于模块是值类型(会将其缓存 ...

  6. java代码从键盘输入执行次数,数,然后排序

    总结:实现从键盘控制执行次数,困惑我很久,直到昨日在提问时,网友说通过循环是肯定可以的所以顿悟了 package com.c2; import java.util.Arrays; import jav ...

  7. Java-API:java.util.map

    ylbtech-Java-API:java.util.map compact1, compact2, compact3 java.util Interface Map<K,V> Type ...

  8. #pragma execution_character_set("utf-8")

    VC2010增加了“#pragma execution_character_set("utf-8")”,指示char的执行字符集是UTF-8编码. VS2010 设置 字符编码: ...

  9. 【知识碎片】SQL篇

    43.group by多个字段 查询每个班级男女生各多少人 Select count(id),xingbie,banji from tablename group by xingbie,banji 4 ...

  10. .net 4 安装未成功,无意中的解决办法!

    公司 电脑是chost的系统,由于使用时间过长,重装纯净版系统的话,代价太大,故网上寻求各种解决办法! 安装.net 4 总是失败,查看百度,各种: WIN7系统哈哈跟我的问题一样,我的刚才解决了:1 ...