请问以下代码,DLL在win7下为什么不会自启动呢,xp下没问题。
HKEY hkey;
//HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad
//HKEY_CLASSES_ROOT\CLSID\{7429583C-B8F9-4db8-928E-1F4A26AA2DD7} // GUID
// ShellServiceObjectDelayLoad
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\ShellServiceObjectDelayLoad", 0, KEY_ALL_ACCESS, &hkey)!= ERROR_SUCCESS)
{
OutputDebugString("1\n");
return FALSE;
}
RegSetValueEx(hkey, szSubKeyName, 0, REG_SZ, (PBYTE)"{7429583C-B8F9-4db8-928E-1F4A26AA2DD7}", strlen("{7429583C-B8F9-4db8-928E-1F4A26AA2DD7}")) ;// GUID生成的
RegCloseKey(hkey);
// CLSID
if (RegOpenKeyEx(HKEY_CLASSES_ROOT,"\\CLSID", 0, KEY_ALL_ACCESS, &hkey)!= ERROR_SUCCESS)
{
OutputDebugString("2\n");
return FALSE;
}
if (RegCreateKey(hkey,"{7429583C-B8F9-4db8-928E-1F4A26AA2DD7}",&hkey) != ERROR_SUCCESS) // GUID生成的
{
OutputDebugString("3\n");
return FALSE;
}
// 设置默认值
RegSetValueEx(hkey, NULL, 0, REG_SZ, (PBYTE)szSubKeyName, strlen(szSubKeyName)) ;// 任意
if (RegCreateKey(hkey,"InprocServer32",&hkey) != ERROR_SUCCESS) // 此子键名固定的。
{
OutputDebugString("4\n");
return FALSE;
}
// 设置默认值
RegSetValueEx(hkey, NULL, 0, REG_SZ, (PBYTE)szDllPath, strlen(szDllPath)) ; // DLL路径
RegSetValueEx(hkey, "ThreadingModel", 0, REG_SZ, (PBYTE)"Both", strlen("Both")) ;// 此数值名固定的。
RegCloseKey(hkey);
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课