问过一次了,不过没有很好的答案,试了一下,不太好使,只有这些分了,全给了。
我希望这些设置后能直接看到效果,有些修改注册表后要注销系统或重新启动后才能看到改变的效果。多谢各位了,帮帮忙:)

解决方案 »

  1.   

    HRESULT hr;
      IActiveDesktop* pIAD;  hr = CoCreateInstance( CLSID_ActiveDesktop, NULL, CLSCTX_INPROC_SERVER,      
                  IID_IActiveDesktop, (void**)&pIAD);
      if ( !SUCCEEDED(hr) ) 
          return;  WCHAR wszPath[MAX_PATH];
      CString strPath;
      strPath = _T("C:\\1.JPG");
      LPTSTR lpStr = strPath.GetBuffer(strPath.GetLength());
      MultiByteToWideChar(CP_ACP, 0, lpStr, -1, wszPath, MAX_PATH);
      strPath.ReleaseBuffer();  hr = pIAD->SetWallpaper(wszPath, 0);
      if ( !SUCCEEDED(hr) )
          return;  WALLPAPEROPT wp={0};
      wp.dwSize = sizeof(wp);
      wp.dwStyle |= WPSTYLE_CENTER;
      hr = pIAD->SetWallpaperOptions(&wp, 0);
      if ( !SUCCEEDED(hr) )
          return FALSE;  hr = pIAD->ApplyChanges(AD_APPLY_ALL);
      if ( !SUCCEEDED(hr) )
          return FALSE;  pIAD->Release();
      

  2.   

    在stdafx.h中
    #include <afxwin.h>
    #include <wininet.h> //添加这个。注意顺序在initinstance中添加AfxOleInit();使用IActiveDesktop的cpp中
    #include<shlobj.h>
      

  3.   

    SystemParametersInfo(SPI_SETDESKWALLPAPER,0,"C:\\aa.BMP",WM_WININICHANGE);//设置墙纸
      

  4.   

    zhucde(【風間苍月】) 
    大哥,我是想设置jpg的
      

  5.   

    vista换背景,速度之快点一下就换了,点一下就换了
      

  6.   

    rabo(不哭死人) 
    不是vista,跑题了:(
      

  7.   

    修改注册表后立即生效。。不过不保证成功
    ::SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0);
      

  8.   

    第一个问题已经解决,第二个问题可能要用代码实现了,不能简单地改一下注册表就行了
    总结一下吧,后来人就不用像这么麻烦地到处问了
    1.设置首页
    HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\Start Page
    2.设置屏保
    HKEY_CURRENT_USER\Control Panel\Desktop\SCRNSAVE.EXE        
    //屏保文件如果没有设屏保就不会有这个键值
    HKEY_CURRENT_USER\Control Panel\Desktop\ScreenSaveActive    
    //设为1表示设置屏保
    HKEY_CURRENT_USER\Control Panel\Desktop\ScreenSaveTimeOut   
    //时间