vbs и wallpapers

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
nonickname
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 02.11.2003 (Вс) 0:18

vbs и wallpapers

Сообщение nonickname » 02.11.2003 (Вс) 0:27

накрапал на vbs скриптик чтоб он мне wallpaper менял при каждой загрузке:

Dim a(26)
Dim j

a(1)="обоя1.jpg"
a(2)="обоя2.jpg"
....
a(26)="обоя3.jpg"

Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
Randomize
j=int(rnd(1)*26+1)
'WSHShell.Popup j
WSHShell.RegWrite "HKCU\SOFTWARE\Microsoft\Internet Explorer\Desktop\General\Wallpaper", "C:\Мои документы\Мои рисунки\wallpapers\"+a(j)

я положил этот скрипт в автозагрузку, но он работает весьма странно:
после включения, wallpaper остается тем же что и был перед этим.
но стоит нажать кнопку F5 картинка меняется на ту которую скрипт прописал в реестре.

подскажите пожалуйста как исправить этот недостаток
заранее thankx
как говорит один знакомый гений: если ты нолик поставь на себе крестик

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 02.11.2003 (Вс) 5:23

А с какой радости винда будет знать, что ты картинку изменил в реестре? Само сабой, нужно апдейт вызывать. Если бы это дело было не в скрипте, то нужно было бы вызвать SystemPapametersInfo с параметром SPI_SETDESKWALLPAPER, а так... :roll:
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

nonickname
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 02.11.2003 (Вс) 0:18

Сообщение nonickname » 02.11.2003 (Вс) 16:34

а с какой радости винда не знает того что картинка изменилась
:?: откуда она тогда берет информацию, какую картинку поставить на рабочий стол :?: :!:
как говорит один знакомый гений: если ты нолик поставь на себе крестик

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 02.11.2003 (Вс) 16:57

nonickname писал(а):а с какой радости винда не знает того что картинка изменилась
:?: откуда она тогда берет информацию, какую картинку поставить на рабочий стол :?: :!:


Здрасте пожалуйста...
Картинку при загрузке берет...
Вопрос был, откуда Винде знать что ты картинку изменил... :wink:
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

nonickname
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 02.11.2003 (Вс) 0:18

Сообщение nonickname » 02.11.2003 (Вс) 17:31

так получается ей (винде) на реестр наплевать? или почти наплевать...
кстати пробовал скрипт запускать перед перезагрузкой (а из автозапуска выкинул)
те получается что картинка при загрузке винды уже прописана но она все равно оставляет предыдущую и новую показывает только после F5...

Картинку при загрузке берет...

откуда? как она помнит какая картика была перед этим, если в реестре записи о ней уже нет?
как говорит один знакомый гений: если ты нолик поставь на себе крестик

nonickname
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 02.11.2003 (Вс) 0:18

Сообщение nonickname » 03.11.2003 (Пн) 0:34

вот дописал к скрипту строчку,
WSHShell.Run "rundll32.exe user,repaintscreen"
и всё равно, не помогает обновляются только открытые окна и ярлыки, но не картинка :(
как говорит один знакомый гений: если ты нолик поставь на себе крестик

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 03.11.2003 (Пн) 8:43

nonickname писал(а):
Картинку при загрузке берет...

откуда? как она помнит какая картика была перед этим, если в реестре записи о ней уже нет?


Да её-моё!!!!
Зачем фВинде знать, поменялась картинка или нет, если при загрузке она берет из реестра путь к ней!!!!!! :twisted:
Ты издеваешься?! :evil:
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

nonickname
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 02.11.2003 (Вс) 0:18

Сообщение nonickname » 03.11.2003 (Пн) 18:12

ВОТ И Я О ТОМ ЖЕ!!! :D
проверено!
в реестре записана уже новая картинка, те при загрузке она должна взять ее и поставить на рабочий стол! (согласен?)
а винда берет непонятно откуда старую картинку...
я ничего не понимаю.. :evil:
как говорит один знакомый гений: если ты нолик поставь на себе крестик

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 03.11.2003 (Пн) 23:15

Значит кеш.... :D
А Ф5 переписывает кеш
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

nonickname
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 02.11.2003 (Вс) 0:18

Сообщение nonickname » 03.11.2003 (Пн) 23:23

тээкс, любопытно... кэш -это ты имеешь ввиду swap файл?
ну тады советуйте как его программно обновить :D
как говорит один знакомый гений: если ты нолик поставь на себе крестик

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 05.11.2003 (Ср) 19:27

Извините, что вмешиваюсь в сей горячий спор...

По-моему Винда просто СНАЧАЛА загружает обои, и только потом уже пускает программы автозапуска. А при нажатии F5 она снова читает реестр, обнаруживает изменения и вуа-ля... :arrow: :arrow: :arrow:

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 05.11.2003 (Ср) 20:05

ANDLL писал(а):Извините, что вмешиваюсь в сей горячий спор...

По-моему Винда просто СНАЧАЛА загружает обои, и только потом уже пускает программы автозапуска. А при нажатии F5 она снова читает реестр, обнаруживает изменения и вуа-ля... :arrow: :arrow: :arrow:


Во-во.
Только вот, как я понял, Винда при следующей перезагрузке все равно старые обои грузит :roll:
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

nonickname
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 02.11.2003 (Вс) 0:18

Сообщение nonickname » 06.11.2003 (Чт) 1:11

может быть я слегка сумбурно описал ситуацию... :roll: попробую упорядочить:
1) если скрипт класть в автозагрузу - новая картинка только после f5
2) если скрипт запускать во время работы системы - запись в реестре изменяется НО F5 уже не помогает
(картинку можно поменять тока через св-ва экрана. там, кстати показывается та картинка которая прописана в реестре на данный момент и может отличаться от находящейся на рабочем столе :) )
3)если скрипт запускать ДО перезагрузки - результат не отличается от п.1
в итоге я склоняюсь к версии о кэше, только как бы его обновить средствами скрипта.. :?:
как говорит один знакомый гений: если ты нолик поставь на себе крестик

nonickname
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 02.11.2003 (Вс) 0:18

Сообщение nonickname » 08.11.2003 (Сб) 22:37

попробовал отключить в винде файл подкачки...
эффекта - ноль!
винда как ставила предыдущуюю картинку, так и ставит :)
вот ведь память :) мне бы такую :0)
как говорит один знакомый гений: если ты нолик поставь на себе крестик

sanches
El compañero
El compañero
 
Сообщения: 823
Зарегистрирован: 09.01.2003 (Чт) 3:58
Откуда: Р_О_С_С_И_Я ! (Питер)

Сообщение sanches » 08.11.2003 (Сб) 23:18

Народ, а про win.ini, тот что в c:\windows\ лежит никто не знает? там ведь тоже прописывается путь к картинке:
[Desktop]
Wallpaper=...
IMHO наверное не зря :wink:
Изображение

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 08.11.2003 (Сб) 23:30

Хе! В моём win.ini (Windows XP) никакого раздела, даже близко похожего на [desktop], нет :?

sanches
El compañero
El compañero
 
Сообщения: 823
Зарегистрирован: 09.01.2003 (Чт) 3:58
Откуда: Р_О_С_С_И_Я ! (Питер)

Сообщение sanches » 09.11.2003 (Вс) 0:45

Ну я про 98. В ХаРэ не знаю ничего ....
Изображение

nonickname
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 02.11.2003 (Вс) 0:18

Сообщение nonickname » 11.11.2003 (Вт) 20:54

гы совсем забыл посмотреть где нибудь еще кроме реестра. :oops:
тока все равно не помогло, я щас вручную прописал свою обою в win.ini, а после включения остался тот же эффект что и был, а в win ini оказались строки:
[Desktop]
Wallpaper=(None) <<вот сюда я перед перезагрузкой собственноручно прописал путь к картинке(той же что и в реестре);
TileWallpaper=0
WallpaperStyle=2
Pattern=(None)
как говорит один знакомый гений: если ты нолик поставь на себе крестик


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 4

    TopList  
cron