是否有等效于slmgr.vbs / skms的C ++ / Winapi

时间:2018-11-26 15:29:02

标签: c++ windows winapi

cmd中,您可以调用c:\windows\system32\slmgr.vbs /skms <host>来设置KMS服务器主机地址。是否可以使用C ++在Win32 API中执行相同的操作?我已经做过一些研究,发现了这一点:

image

我正在寻找ServerName字符串吗?

1 个答案:

答案 0 :(得分:0)

可通过slc.dll / Slpublic.h(例如SLSetCurrentProductKey)获得许可API:

HRESULT SLSetCurrentProductKey(
  HSLC       hSLC,
  const SLID *pProductSkuId,
  const SLID *pProductKeyId
);

有关更多详细信息,请参见slpublic.h

要更改KMS服务器地址,我认为您需要在注册表(HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform)中对其进行更改,然后调用SlActivateProduct

HRESULT SLActivateProduct(
  HSLC                            hSLC,
  const SLID                      *pProductSkuId,
  UINT                            cbAppSpecificData,
  const PVOID                     pvAppSpecificData,
  const SL_ACTIVATION_INFO_HEADER *pActivationInfo,
  PCWSTR                          pwszProxyServer,
  WORD                            wProxyPort
);

不幸的是,这些位没有得到很好的记录...