修改自动播放功能
HRESULT hr=S_OK;
::CoInitialize(NULL);
IGroupPolicyObject* p = NULL;
/*hr = CoCreateInstance(CLSID_GroupPolicyObject, NULL,
CLSCTX_INPROC_SERVER, IID_IGroupPolicyObject,
(LPVOID*)&p);*/
hr = CoCreateInstance(CLSID_GroupPolicyObject, NULL, CLSCTX_ALL,IID_IGroupPolicyObject,(LPVOID*)&p);
log_error("CoCreateInstance = %d\n",GetLastError());
log_error("CoCreateInstance() failed 0x%08x\n", hr);
if (SUCCEEDED(hr))
{
DWORD dwSection = GPO_SECTION_USER;
HKEY hGPOSectionKey = NULL;
DWORD dwData;
HKEY hSettingKey;
LSTATUS rStatus;
DWORD lData = 255;
hr = 0;
//hr = p->OpenDSGPO( bGPOPath, GPO_OPEN_LOAD_REGISTRY);
hr = p->OpenLocalMachineGPO(GPO_OPEN_LOAD_REGISTRY);
hr = p->GetRegistryKey(dwSection, &hGPOSectionKey);
long returnnum = RegOpenKeyEx( hGPOSectionKey,
L"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer", 0,
KEY_WRITE, &hSettingKey) ;
log_printf(" RegOpenKeyEx return num = %d\n",returnnum);
if(returnnum != ERROR_SUCCESS )
{
rStatus = RegCreateKeyEx(
hGPOSectionKey,
L"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer",
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_WRITE,
NULL,
&hSettingKey,
NULL );
}
rStatus = RegSetValueEx(hSettingKey, L"NoDriveTypeAutoRun",
NULL, REG_DWORD, (BYTE *)(&lData),
sizeof(DWORD));
rStatus = RegCloseKey(hSettingKey);
GUID RegistryId = REGISTRY_EXTENSION_GUID;
GUID ThisAdminToolGuid =
{
0x0F6B957E,
0x509E,
0x11D1,
{0xA7, 0xCC, 0x00, 0x00, 0xF8, 0x75, 0x71, 0xE3}
};
rStatus = RegCloseKey(hGPOSectionKey);
hr = p->Save(
FALSE,
TRUE,
&RegistryId,
&ThisAdminToolGuid );
CoUninitialize();
hr = p->Release();
}
hr=S_OK;
::CoInitialize(NULL);
p = NULL;
/*hr = CoCreateInstance(CLSID_GroupPolicyObject, NULL,
CLSCTX_INPROC_SERVER, IID_IGroupPolicyObject,
(LPVOID*)&p);*/
hr = CoCreateInstance(CLSID_GroupPolicyObject, NULL, CLSCTX_ALL,IID_IGroupPolicyObject,(LPVOID*)&p);
log_error("CoCreateInstance = %d\n",GetLastError());
log_error("CoCreateInstance() failed 0x%08x\n", hr);
if (SUCCEEDED(hr))
{
DWORD dwSection = GPO_SECTION_MACHINE;
HKEY hGPOSectionKey = NULL;
DWORD dwData;
HKEY hSettingKey;
LSTATUS rStatus;
DWORD lData = 255;
hr = 0;
//hr = p->OpenDSGPO( bGPOPath, GPO_OPEN_LOAD_REGISTRY);
hr = p->OpenLocalMachineGPO(GPO_OPEN_LOAD_REGISTRY);
log_printf("p->OpenLocalMachineGPO(GPO_OPEN_LOAD_REGISTRY) = %d",hr);
hr = p->GetRegistryKey(dwSection, &hGPOSectionKey);
log_printf("p->GetRegistryKey(dwSection, &hGPOSectionKey) = %d",hr);
long returnnum = RegOpenKeyEx( hGPOSectionKey,
L"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer", 0,
KEY_WRITE, &hSettingKey) ;
log_printf(" RegOpenKeyEx return num = %d\n",returnnum);
if(returnnum != ERROR_SUCCESS )
{
rStatus = RegCreateKeyEx(
hGPOSectionKey,
L"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer",
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_WRITE,
NULL,
&hSettingKey,
NULL );
log_printf("RegCreateKeyEx return num = %d\n",rStatus);
}
rStatus = RegSetValueEx(hSettingKey, L"NoDriveTypeAutoRun",
NULL, REG_DWORD, (BYTE *)(&lData),
sizeof(DWORD));
log_printf("RegSetValueEx NoDriveTypeAutoRun return num = %d\n",rStatus);
rStatus = RegCloseKey(hSettingKey);
GUID RegistryId = REGISTRY_EXTENSION_GUID;
GUID ThisAdminToolGuid =
{
0x0F6B957E,
0x509E,
0x11D1,
{0xA7, 0xCC, 0x00, 0x00, 0xF8, 0x75, 0x71, 0xE3}
};
rStatus = RegCloseKey(hGPOSectionKey);
hr = p->Save(
TRUE,
TRUE,
&RegistryId,
&ThisAdminToolGuid );
log_printf("Save return num = %d\n",hr);
CoUninitialize();
hr = p->Release();
}