Nano Hash - криптовалюты, майнинг, программирование

как поменять обои на рабочем столе?

Как изменить обои рабочего стола?

я пробовал это

procedure TForm1.Button1Click(Sender: TObject); 
var   
  PicPath: String; 
begin 
  PicPath := 'C:\test.bmp';   
  SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, pChar(PicPath), SPIF_SENDCHANGE) 
end;

Но это не сработало.

18.12.2009

Ответы:


1

Я только что попробовал это с D2007 на XP (а также с D2009 на Vista), и этот код работает.
Но чтобы поймать, если и почему он не работает, вы должны проверить код результата и получить ошибку из Windows. :

  if not SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, pChar(PicPath), SPIF_SENDCHANGE)then
    RaiseLastOSError;

В большинстве случаев это будет из-за того, что файл bmp не найден:

System Error.  Code: 2.
The system cannot find the file specified.
19.12.2009

2

Вы можете проверить этот скрипт Python: http://gaze.svn.sourceforge.net/viewvc/gaze/trunk/implementation/src/gazelib/os_interface.py?view=markup

Это метод Python, который делает всю магию. Он изменяет несколько ключей реестра, а затем вызывает системный метод для обновления обоев.

  103   def set_wallpaper(self, file_path) :
  104       self.__lock.acquire()
  105       # this module is part of python 2.5 by default
  106       import ctypes
  107       import _winreg
  108       reg = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER, self.__REGISTRY_PATH, 0, _winreg.KEY_SET_VALUE)
  109       # First center the image and turn off tiling
  110       _winreg.SetValueEx(reg, "TileWallpaper", 0, _winreg.REG_SZ, "0")
  111       _winreg.SetValueEx(reg, "WallpaperStyle", 0, _winreg.REG_SZ, "0")
  112       # Set the image
  113       _winreg.SetValueEx(reg, "ConvertedWallpaper", 0, _winreg.REG_SZ, os.path.realpath(file_path))
  114       _winreg.SetValueEx(reg, "Wallpaper", 0, _winreg.REG_SZ, self.convert_to_bmp(file_path))
  115       _winreg.CloseKey(reg)
  116       # Notify the changes to the system
  117       func_ret_val = ctypes.windll.user32.SystemParametersInfoA(\
  118           self.__SPI_SETDESKWALLPAPER,\
  119           0,\
  120           None,\
  121           self.__SPIF_UPDATEINIFILE | self.__SPIF_SENDWININICHANGE)
  122       assert func_ret_val == 1
  123       self.__lock.release()
18.12.2009

3

Проверьте код VB здесь, это может дать вам подсказку.

SystemParametersInfo (SPI_SETDESKWALLPAPER, 0, imageLocation, SPIF_UPDATEINIFILE или SPIF_SENDWININICHANGE)

18.12.2009

4

Это должно работать

Procedure TForm1.Button1Click(Sender: TObject);
var
  PicPath : string;
begin
  PicPath := 'C:\test.bmp';
  SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, Pointer(PicPath), SPIF_SENDWININICHANGE);
end;
21.12.2009
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..