|
Вернулся
1753 / 649 / 45
Регистрация: 10.09.2021
Сообщений: 2,801
|
|||||||||||
Как программно в Windows XP поменять картинку на рабочем столе, используя файл JPG?30.07.2023, 20:16. Показов 2475. Ответов 33
Метки нет (Все метки)
Всем привет!
Скажите, пожалуйста, как в Windows XP установить картинку на рабочем столе в формате JPG??? Или никак вообще? Неужели только начиная от Windows Vista или даже Windows 7 можно установить именно JPG-картинку??? В семёрке этот код прекрасно работает: Модуль:
1
|
|||||||||||
| 30.07.2023, 20:16 | |
|
Ответы с готовыми решениями:
33
Как сохранить файл напрямую в базу данных,не используя путь к файлу на рабочем столе? Как создать файл на рабочем столе так, что бы работало на Linux и на Windows? Как средствами 1С сменить картинку на рабочем столе |
|
Вернулся
1753 / 649 / 45
Регистрация: 10.09.2021
Сообщений: 2,801
|
||
| 31.07.2023, 19:59 [ТС] | ||
|
I can, спасибо большое в семёрке работает со всеми форматами файлов, сейчас в XP ещё проверю будет ли работать...
Добавлено через 10 минут Да, проверил и в XP тоже работает даже с PNG. Но XP конечно сама их конвертирует в BMP и копирует в определённую папку. А семёрка конвертирует в JPG. Добавлено через 1 минуту
0
|
||
|
dive
5005 / 4768 / 852
Регистрация: 13.04.2015
Сообщений: 10,015
|
|
| 31.07.2023, 20:44 | |
|
0
|
|
|
Вернулся
1753 / 649 / 45
Регистрация: 10.09.2021
Сообщений: 2,801
|
|
| 31.07.2023, 20:59 [ТС] | |
|
0
|
|
|
Вернулся
1753 / 649 / 45
Регистрация: 10.09.2021
Сообщений: 2,801
|
|
| 01.08.2023, 12:44 [ТС] | |
|
Единственный минус этой функции ActiveDesktopSetWallpaper это то, что она выполняется слишком долго от 350 до 600 миллисекунд ажно. То есть в среднем приходится ждать аж по пол секунды времени, чтобы картинка поменялась и обратно пришёл отклик в твою программу...
Добавлено через 2 минуты Я провел некоторые тесты где понял что исполнение SystemParametersInfo выигрывает в производительности это самая быстрая функция для смены обоев, так как ничего не конвертируется в BMP? ничего никуда не перекопируется... Просто сразу устанавливаются обои и всё Добавлено через 1 минуту Исполнение функции SystemParametersInfo занимает в среднем 93 миллисекунды времени
0
|
|
|
Вернулся
1753 / 649 / 45
Регистрация: 10.09.2021
Сообщений: 2,801
|
||||||
| 01.08.2023, 13:25 [ТС] | ||||||
|
Итак, продолжаем эту интересную тему! Я создал для себя модуль в котором расположил две функции. Первая функция, которая сразу меняет картинку, вторая функция которая ещё и конвертирует в BMP сначала. Потом я добавил второй модуль, позаимствовав код с иностранного форума, где какой-то гений придумал код смены картинки через ActiveDesktop.
Итого я решил протестировать три эти функции по времени их выполнения. Тест скорости проводил в EXE в семёрке: 1. SetWallpaper: 63 ml 2. SetWallpaperAndConvertToBMP: 109 ml 3. ActiveDesktopSetWallpaper: 359 ml Хочу обратить внимание на то, что самая быстрая функция это моя SetWallpaper, которая просто выполняет SystemParametersInfo и всё Самая медленная функция - ActiveDesktopSetWallpaper она в среднем выполняется вообще пол секунды, очень долго Код моего модуля с двумя этими функциями:
1
|
||||||
|
Вернулся
1753 / 649 / 45
Регистрация: 10.09.2021
Сообщений: 2,801
|
|
| 01.08.2023, 14:04 [ТС] | |
|
Функцией SetWallpaperAndConvertToBMP особо не пользуйтесь, она не поддерживает PNG я её писал только для проверки скорости
Чтобы написать оптимальную новую универсальную функцию лучше всего сначала вызывать SystemParametersInfo и в случае неудачи повторно пробовать вызывать ActiveDesktopSetWallpaper, тогда будет работать само быстро по времени Добавлено через 1 минуту Кстати функция ActiveDesktopSetWallpaper в операционной системе Windows XP работает в два раза быстрее по скорости, я заметил Добавлено через 3 минуты Но тут важно понимать разницу в алгоритмах, как работает XP и как работает семёрка, при установлении картинки на рабочий стол XP конвертирует любой графический файл в BMP сохраняет его на диске C: и сразу устанавливает картинку А семёрка конвертирует любой графический файл в JPG уже, а значит потребуется больше времени на сохранение графического файла ибо его ещё и упаковать надо, а потом уже устанавливает эту картинку. Плюс уходит время на процесс копирования файла ещё на диск C: в дебри системы (я уже писал пути сохранения этих картинок) Добавлено через 20 минут Да и функция SetWallpaperAndConvertToBMP не поддерживает юникод и китайщину... А вот функция ActiveDesktopSetWallpaper поддерживает китайщину, это мне понравилось) Добавлено через 4 минуты Хотя в том модуле используется CallWindowProcA вместо CallWindowProcW и всё равно поддерживает китайщину... Ну там какой-то гений писал этот код с ассемблерной вставкой даже...
1
|
|
|
Вернулся
1753 / 649 / 45
Регистрация: 10.09.2021
Сообщений: 2,801
|
||||||
| 01.08.2023, 21:36 [ТС] | ||||||
|
Ура! Я наконец-то написал модуль с универсальной функций смены картинки на рабочем столе:
1
|
||||||
|
Вернулся
1753 / 649 / 45
Регистрация: 10.09.2021
Сообщений: 2,801
|
|
| 02.08.2023, 00:09 [ТС] | |
|
Я обнаружил, что функция ActiveDesktopSetWallpaper не работает в P-коде есть такой минус... Только, если компилировать EXE в Native коде. Это странно, учитывая, что в среде выполнения VB6 всё работает как надо
Добавлено через 15 минут Самая новая версия тут: Готовые решения и полезные коды на Visual Basic 6.0 Всё работает как надо. Вроде всё исправил и добавил проверку на существования файла. Добавлено через 4 минуты Должно работать для всех версий Windows по идее.
0
|
|
|
Вернулся
1753 / 649 / 45
Регистрация: 10.09.2021
Сообщений: 2,801
|
|||||||
| 08.07.2024, 21:15 [ТС] | |||||||
Теперь с этим новым кодом, уже будет не важно русская винда или английская или вообще китайская какая-нибудь... Автор этого кода FlasherX. Тема: Смена обоев рабочего стола
1
|
|||||||
| 09.07.2024, 05:56 | ||
|
Добавлено через 3 минуты но мене не нраится, это слишком выпендрежно
0
|
||
|
Вернулся
1753 / 649 / 45
Регистрация: 10.09.2021
Сообщений: 2,801
|
|
| 09.07.2024, 05:57 [ТС] | |
|
testuser2, да, это самый лучший код с помощью ассемблерной вставки
0
|
|
|
Вернулся
1753 / 649 / 45
Регистрация: 10.09.2021
Сообщений: 2,801
|
||||||||||||||||
| 15.07.2024, 08:45 [ТС] | ||||||||||||||||
|
Вот более правильный код:
Единственное в чём я не разобрался это как включить красивое плавное появление картинки на рабочем столе с fade эффектом? Дело в том, что пока я сам вручную не поменяю картинку на рабочем столе через меню "Персонализация" красивого эффекта смены картинки не будет... А как только я хотябы один раз поменяю картинку вручную то и потом всегда будет красиво меняться картинка через интерфейс IActiveDesktop Это странное поведение мною ещё пока не разгадано... Добавлено через 7 минут И главное что в MSDN нет такого описания... Добавлено через 13 минут Конечно для VB такого кода нигде нет, как обычно, но я выяснил, что нужно сначала включать ActiveDesktop специальным хаком, через функцию EnableActiveDesktop, это код на сях:
![]() Добавлено через 9 минут Итак мы переписали этот код на VB6:
И это реально работает!!! Ура!!! Теперь нужно сначала только один раз вызвать EnableActiveDesktop и всё, и потом всякий раз картинка на рабочем столе будет меняться плавно с красивым fade эффектом.
0
|
||||||||||||||||
|
Вернулся
1753 / 649 / 45
Регистрация: 10.09.2021
Сообщений: 2,801
|
||||||
| 15.07.2024, 10:19 [ТС] | ||||||
|
Вот окончательный вариант моего творчества:
0
|
||||||
| 15.07.2024, 10:19 | |
|
Как программно создать иконку на рабочем столе?
Как поменять обои на рабочем столе? Как поменять рисунок на рабочем столе. Как поменять фоновый рисунок на рабочем столе Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов.
Логика кажется понятной:
1. Находим ключевые слова.
2. Добавляем их на. . .
|
|
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302
Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
|
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс
Ссылка на сгенерированную музыкальную композицию:
https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013
Я говорю, что Время- как вода
течет. . .
|
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла:
Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
|
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет
Салют, шампанское, овации!
:drink:
|