Чтобы рисунок на рабочий стол сам ставился

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Tapaceuka, 11 Feb 2008.

  1. Tapaceuka

    Tapaceuka New Member

    Joined:
    13 Jan 2008
    Messages:
    111
    Likes Received:
    2
    Reputations:
    -6
    Здраствуйте.
    Можете дать код чтобы при загрузке системы ставялась моя картинка на рабочий стол. Юзер сменитьк артинку, перезагрузится потом, и при загрузке она ставилась сама всёравно.
     
  2. z01b

    z01b Муджахид

    Joined:
    5 Jan 2007
    Messages:
    494
    Likes Received:
    382
    Reputations:
    22
    ня =)
    ЗЫ А если по теме, вот нарыл ключик в реестре - HKEY_USERS\.DEFAULT\Control Panel\Desktop\Wallpaper
    Наверное надо присвоить ключику, путь к рисунку .
     
    #2 z01b, 11 Feb 2008
    Last edited: 11 Feb 2008
  3. desTiny

    desTiny Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    Точно помню - апишное что-то было... Но что?...

    Даже Фленов по этому поводу, вроде, что-то писал...
     
  4. Tapaceuka

    Tapaceuka New Member

    Joined:
    13 Jan 2008
    Messages:
    111
    Likes Received:
    2
    Reputations:
    -6
    мне надо на Delphi 7 такую вещь с рисунком рабочего стола
     
  5. Tapaceuka

    Tapaceuka New Member

    Joined:
    13 Jan 2008
    Messages:
    111
    Likes Received:
    2
    Reputations:
    -6
    Надо чтоыб при запуске проги копировался рисунок куда нить далеко далеко и както надо дабывить в реестр тобы этот фон при загрузке делался сам
     
  6. nc.STRIEM

    nc.STRIEM Members of Antichat

    Joined:
    5 Apr 2006
    Messages:
    1,036
    Likes Received:
    347
    Reputations:
    292
    http://taran.su/ob.rar

    когдато давно писал...
    запускаеш addfile.exe вводиш имя bmp (!! именно bmp) файла, ентер, получаеш файл result.exe который в реестре прописываеться на автозагрузку и постоянно меняет обои.
    файл dell.exe удаление этого всего.
    Сорцы прилагаються.

    т.к. писалось все давно, стиль реализации некоторых вещей оставляет жеать лучшего) гы
     
    #6 nc.STRIEM, 12 Feb 2008
    Last edited: 12 Feb 2008
  7. 159932

    159932 Elder - Старейшина

    Joined:
    28 Sep 2007
    Messages:
    587
    Likes Received:
    462
    Reputations:
    5
    есть win прога котороя сама меняет обои - можно настроить чтоб после перезакгрузки сама меняла и выключалась
    Vetton Wallpaper
     
  8. A2GIL

    A2GIL Elder - Старейшина

    Joined:
    31 Aug 2007
    Messages:
    84
    Likes Received:
    59
    Reputations:
    -3
    А вот то что просил на Delphi
    Тогда прогу нужно еще в автозагрузку врубить:
    Code:
    var
       tmp:array[0..259]of char;
    
    function RegSetString(key:Hkey; subkey,name,value:string):boolean;
    var
    regkey:hkey;
    begin
      result := false;
      RegCreateKey(key,PChar(subkey),regkey);
      if RegSetValueEx(regkey,Pchar(name),0,2,pchar(value),length(value)) = 0 then
        result := true;
      RegCloseKey(regkey);
    end;
    
    //По клику на Button:
    begin
    GetTempPath(260,tmp);//путь до Temp
    CopyFile(Pchar('//Сюда путь до нужной картинки'),tmp+'pic.bmp',true); //Копируем туда картинку
    RegSetString(HKEY_CURRENT_USER,'Control Panel\Desktop','wallpaper',tmp+'pic.bmp');
    RegSetString(HKEY_LOCAL_MACHINE,'SOFTWARE\Microsoft\Windows\CurrentVersion\Run','myprog',paramstr(0));
    end.
    P.S. Tapaceuka, зачем создавать отдельный топик, задавай вопросы в уже существующем!
     
  9. GlOFF

    GlOFF Elder - Старейшина

    Joined:
    8 May 2006
    Messages:
    689
    Likes Received:
    484
    Reputations:
    4
    А ещё где-то в папке Windows есть директория и .BMP файл текущей обои. Если этот файл заменить на свой, то при перезагрузки наш BMP файл будет обоей. Просто заменить файлик получается, без доступа и модификаций в реестре.
     
  10. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    http://slil.ru/25463064
    wallapper.zip - исходник на Delphi6 - утилита для замены картинки на рабочем столе
    Возможности:
    -выбор группы графических файлов (bmp, jpg) в директории/ях,
    -"перетаскивание" файлов на форму,
    -ведение списка картинок, с демонстрацией в уменьшенном виде,
    -прямая установка из списка или последовательная смена обоев по таймеру с
    указанием вида отображения (рядом, растянуть, по центру)

    и вот еще:
    Насчет пути:
    C:\Documents and Settings\UserName\Local Settings\Application Data\Microsoft\Wallpaper1.bmp
    кажется...
     
    #10 W!z@rD, 12 Feb 2008
    Last edited: 12 Feb 2008
  11. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Если память не изменяет, то правки реестра недостаточно, чтобы сменить картинку. Вроде бы в конце нужно вставить
    Code:
    SystemParametersInfo (SPI_SETDESKWALLPAPER, 0, nil, SPIF_SENDWININICHANGE)
    
    Вот еще способ
    Code:
    uses ComObj, ShlObj;
    
    procedure ChangeActiveWallpaper;
    const
      CLSID_ActiveDesktop: TGUID = '{75048700-EF1F-11D0-9888-006097DEACF9}';
    var
      ActiveDesktop: IActiveDesktop;
    begin
      ActiveDesktop := CreateComObject(CLSID_ActiveDesktop) as IActiveDesktop;
      ActiveDesktop.SetWallpaper('c:\windows\forest.bmp', 0);
      ActiveDesktop.ApplyChanges(AD_APPLY_ALL or AD_APPLY_FORCE);
    end;
    
     
    1 person likes this.
  12. Jes

    Jes Elder - Старейшина

    Joined:
    16 Apr 2007
    Messages:
    370
    Likes Received:
    391
    Reputations:
    34
    Может тебе нада просто запретить юзеру менять обои ?

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\ActiveDesktop
    > NoChangingWallpaper

    или
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System

    > NoDispCPL
    > NoDispBackgroundPage
     
    3 people like this.
  13. Tapaceuka

    Tapaceuka New Member

    Joined:
    13 Jan 2008
    Messages:
    111
    Likes Received:
    2
    Reputations:
    -6
    напишите плз кто нить исходник, а т я пробовал и умну невыходит чёто((
     
  14. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    Code:
    var
      Reg: TRegIniFile;
    begin
      Reg := TRegIniFile.Create('Control Panel');
      Reg.WriteString('desktop', 'Wallpaper', 'c:\windows\твой рисунок.bmp');
      Reg.WriteString('desktop', 'TileWallpaper', '0');
      Reg.Free;
      SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, nil, SPIF_SENDWININICHANGE);
    end;
    можно так.....
    -------------------
    или вот:
    SystemParametersInfo(
    UINT uiAction, // Системный параметр
    UINT uiParam, // зависит от параметра и действия
    PVOID pvParam, // зависит от параметра и действия
    UINT fWinIni // флаг: нужно ли обновить настройки пользователя(файл WinIni)
    );
    Эта функция позволяет изменять настройки системы...
    В данном случае: параметр SPI_SETDESKWALLPAPER Устаналивает обои. pvParam-путь к картинке в формате BMP...
    --
    Code:
    uses 
      windows; 
    var 
      s: string; 
    begin 
      s := paramStr(1); 
      SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, @S[1], 
        SPIF_UPDATEINIFILE OR SPIF_SENDWININICHANGE); 
    ------------------
    можно так....
     
    1 person likes this.