为什么SetWallpaper调用失败,该怎么处理
为什么SetWallpaper调用失败
void SetDesktopWallpaper()
{
HRESULT hr;
IActiveDesktop *pActiveDesktop;
CoInitialize(NULL);
hr = CoCreateInstance(CLSID_ActiveDesktop, NULL, CLSCTX_INPROC_SERVER,IID_IActiveDesktop, (void**)&pActiveDesktop);
if (hr!=S_OK)
return;
WALLPAPEROPT wpOptions;
wpOptions.dwSize = sizeof(WALLPAPEROPT);
wpOptions.dwStyle = WPSTYLE_STRETCH;
hr=pActiveDesktop->SetWallpaperOptions(&wpOptions,0);
COMPONENTSOPT comps;
comps.dwSize = sizeof comps;
comps.fEnableComponents = TRUE;
comps.fActiveDesktop = TRUE;
hr=pActiveDesktop-> SetDesktopItemOptions(&comps,0);
//Insert code to call the IActiveDesktop methods
if(FAILED(pActiveDesktop->SetWallpaper(L"D;\\1.jpg",0)))
return;
hr=pActiveDesktop->ApplyChanges(AD_APPLY_ALL);
pActiveDesktop->Release();
CoUninitialize();
}
hr 返回一直是S_OK
执行完成后,桌面显示蓝色背景,且右键桌面属性->桌面图片就是设置的图片名
为什么就是不显示? 哪位高手解答一下,谢谢
------解决方案--------------------
if(FAILED(pActiveDesktop->SetWallpaper(L"D;\\1.jpg",0)))
if(FAILED(pActiveDesktop->SetWallpaper(L"D:\\1.jpg",0)))应该是这样吧
void SetDesktopWallpaper()
{
HRESULT hr;
IActiveDesktop *pActiveDesktop;
CoInitialize(NULL);
hr = CoCreateInstance(CLSID_ActiveDesktop, NULL, CLSCTX_INPROC_SERVER,IID_IActiveDesktop, (void**)&pActiveDesktop);
if (hr!=S_OK)
return;
WALLPAPEROPT wpOptions;
wpOptions.dwSize = sizeof(WALLPAPEROPT);
wpOptions.dwStyle = WPSTYLE_STRETCH;
hr=pActiveDesktop->SetWallpaperOptions(&wpOptions,0);
COMPONENTSOPT comps;
comps.dwSize = sizeof comps;
comps.fEnableComponents = TRUE;
comps.fActiveDesktop = TRUE;
hr=pActiveDesktop-> SetDesktopItemOptions(&comps,0);
//Insert code to call the IActiveDesktop methods
if(FAILED(pActiveDesktop->SetWallpaper(L"D;\\1.jpg",0)))
return;
hr=pActiveDesktop->ApplyChanges(AD_APPLY_ALL);
pActiveDesktop->Release();
CoUninitialize();
}
hr 返回一直是S_OK
执行完成后,桌面显示蓝色背景,且右键桌面属性->桌面图片就是设置的图片名
为什么就是不显示? 哪位高手解答一下,谢谢
------解决方案--------------------
if(FAILED(pActiveDesktop->SetWallpaper(L"D;\\1.jpg",0)))
if(FAILED(pActiveDesktop->SetWallpaper(L"D:\\1.jpg",0)))应该是这样吧