风行者 发表于 2021-10-26 23:26
慢慢玩
我安装的AccAu3Inst_1.5.11.127,竟然没有这个工具箱。。 风行者 发表于 2021-10-26 23:26
慢慢玩
方便发一下你这个版本的AU3吗,谢谢 风行者 发表于 2021-10-26 23:26
慢慢玩
多谢大神指点,已经在Q群里找到版本了。 风行者 发表于 2021-10-26 23:26
慢慢玩
研究了一下,程序扩展工具中提供的这个代码。和我1楼写的第一个转化方法一样,都是获取各种信息。等同于wmic命令中的get,比如:get Version (获取版本号)
而我想知道call Activate(执行Activate这个方法),怎么转化为AU3。貌似程序扩展工具中并没有介绍555555555
:face (10):
每日一问。。:face (37): 产品ID要找对,否则会报错
Local $sProductID = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' ;产品ID
Local $colServices = ObjGet("winmgmts:").ExecQuery("SELECT Version FROM SoftwareLicensingService")
For $objProduct In ObjGet("winmgmts:").ExecQuery("SELECT ID FROM SoftwareLicensingProduct where id = '" & $sProductID & "'")
$objProduct.Activate()
For $objService In $colServices
$objService.RefreshLicenseStatus()
Next
$objProduct.refresh_
Next
zghwelcome 发表于 2021-11-1 15:11
产品ID要找对,否则会报错
多谢多谢。貌似执行不报错了。
$objProduct.Activate()执行的返回值请问怎么获取呀?有时代码执行成功,但正常可能会有错误代码返回,想获取这个错误代码。
zghwelcome 发表于 2021-11-1 15:11
产品ID要找对,否则会报错
现在执行结果是空的
这个没有返回结果的,没有报错就成功 zghwelcome 发表于 2021-11-1 20:50
这个没有返回结果的,没有报错就成功
$objProduct.Activate()因为这个是执行激活的命令,虽然代码执行成功了。但是激活有可能成功也有可能失败啊,万一失败,错误代码也看不了吗? 使用wmic命令可以看错误代码、 zghwelcome 发表于 2021-11-1 20:50
这个没有返回结果的,没有报错就成功
并且还有个问题,这个代码执行虽然不报错了,但是有时貌似没有执行。因为msgbox没有弹出来。但有时能弹出,有时不弹出,好奇怪。 你弄个函数就行了啊
Local $sProductID = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' ;产品ID
Activate($sProductID)
If Not @error Then
MsgBox(512, '', '成功')
Else
MsgBox(16, '', '失败')
EndIf
Func Activate($sProductID)
Local $colServices = ObjGet("winmgmts:").ExecQuery("SELECT Version FROM SoftwareLicensingService")
For $objProduct In ObjGet("winmgmts:").ExecQuery("SELECT ID FROM SoftwareLicensingProduct where id = '" & $sProductID & "'")
$objProduct.Activate()
For $objService In $colServices
$objService.RefreshLicenseStatus()
Next
$objProduct.refresh_
Return True
Next
Return SetError(1, 0, False)
EndFunc ;==>Activate
zghwelcome 发表于 2021-11-1 21:55
你弄个函数就行了啊
Local $owinmgmts = ObjGet("winmgmts:")
Local $sProductID = '4de7cb65-cdf1-4de9-8ae8-e3cce27b9f2c' ;产品ID
Local $colServices = ObjGet("winmgmts:").ExecQuery("SELECT Version FROM SoftwareLicensingService")
For $objProduct In ObjGet("winmgmts:").ExecQuery("SELECT ID FROM SoftwareLicensingProduct where id = '" & $sProductID & "'")
$objProduct.Activate()
MsgBox(64, 1, $objProduct.Activate())
For $objService In $colServices
$objService.RefreshLicenseStatus()
Next
$objProduct.refresh_
Next
Local $sProductID = '4de7cb65-cdf1-4de9-8ae8-e3cce27b9f2c' ;产品ID
Activate($sProductID)
If Not @error Then
MsgBox(512, '', '成功')
Else
MsgBox(16, '', '失败')
EndIf
Func Activate($sProductID)
Local $colServices = ObjGet("winmgmts:").ExecQuery("SELECT Version FROM SoftwareLicensingService")
For $objProduct In ObjGet("winmgmts:").ExecQuery("SELECT ID FROM SoftwareLicensingProduct where id = '" & $sProductID & "'")
$objProduct.Activate()
For $objService In $colServices
$objService.RefreshLicenseStatus()
Next
$objProduct.refresh_
Return True
Next
Return SetError(1, 0, False)
EndFunc ;==>Activate
出现了一个很奇怪的问题,上面两段代码是一回事。但是把他俩放到一个.au3里面执行。。结果失败。如果单独执行一段代码,就成功。
此外,下面这两行,如果把其中的ObjGet("winmgmts:"),事先用变量声明。Local $owinmgmts = ObjGet("winmgmts:"),也会执行失败。。好奇怪
Local $colServices = ObjGet("winmgmts:").ExecQuery("SELECT Version FROM SoftwareLicensingService")
For $objProduct In ObjGet("winmgmts:").ExecQuery("SELECT ID FROM SoftwareLicensingProduct where id = '" & $sProductID & "'")
页:
1
[2]