download.bg
 Вход Списание  Новини  Програми  Статии  Форум  Чат   Абонамент  Топ95   Архив 

Конкурс - семпла програма за автоматична смяна на Wallpaper-ите на Desktop-a

<1 2 >

Автор
Съобщение
dreamskill
Пон, 10.11.08, 21:55

Конурс - семпла програма за автоматична смяна на Wallpaper-ите на Desktop-a

И е тука
C:\Documents and Settings\Administrator\Local Settings\Application Data\Microsoft
редактиран от dreamskill на 10.11.08 21:56
shaman
Пон, 10.11.08, 21:57

Конурс - семпла програма за автоматична смяна на Wallpaper-ите на Desktop-a

A?
Сори.
Мисля 4е е в C:\Users\******\AppData\Roaming\Microsoft . . .
П.С.Поне на Виста е там.
_____________________________
In The Hands of The Shaman ®
редактиран от shaman на 10.11.08 21:57
редактиран от shaman на 10.11.08 21:58
phrozencrew
Вто, 11.11.08, 10:22

Конурс - семпла програма за автоматична смяна на Wallpaper-ите на Desktop-a

Ехаа, колко ентусиасти се събрахме.
dhtj, програмката, която предложи наистина е добра и могат да се вземат идеи от нея.
koko5, мисля, че няма проблем да се използва и чужд код, стига да се спазят условията на този, който е измисли кода, ако има такива.

Нека да видим каква информация ще ни е полезна за писане на тази програма:
1. Промяна на регистъра на Win
1.1. За Windows 9x...XP:
HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper
1.2. Vista - не е ясно все още

2. Промяна на ini-файла на Windows. Използва се WinAPI функция + параметри:
SystemParametersInfo
SPI_SETDESKWALLPAPER
SPIF_SENDWININICHANGE
SPIF_UPDATEANDSENDIN
SPIF_UPDATEINIFILE
SPIF_SENDCHANGE (незабавен ъпдейт, за по-горните не съм ги тествал)

По всеки от по-горе посочените параметри може да се намери инфо в Google. По принцип са необходими само 2 от посочените по-горе параметри, но е интересно комбинирането им. Важно е да се знае, че почти всички съвремени езици поддържат WinAPI, така, че определено езика за писане на програмата е почти без значение, според мен.

Ето и един примерен код на perl:
#!/usr/bin/perl

use Win32::API;

use constant SPI_SETDESKWALLPAPER  => 20;
use constant SPIF_UPDATEANDSENDINI => 3;
use constant NULL                  => 0;

my $syspinf = Win32::API->new('user32','SystemParametersInfo', [I,I,P,
+I], I)
  or die "Could not import function.n";

$syspinf->Call(SPI_SETDESKWALLPAPER, 0, $ARGV[0], SPIF_UPDATEANDSENDIN
+I);

Някой ако намери инфо и как се стартира hiden процес ще стане муцка!

boy4o
Вто, 11.11.08, 12:04

RE: Конурс - семпла програма за автоматична смяна на Wallpaper-ите на Desktop-a

” ...
...
Някой ако намери инфо и как се стартира hiden процес ще стане муцка! „
Някой ако намери книгата "Тайните прекъсвания на Windows" (Димитър Попов, СофтМастър, С., 2006) ще стане муцка! Там всичко това го имаше най-подробно.

Вашият покорен слуга прави предпечата на тази публикация. Тираж 5500. Тиражът беше изкупен от неизвестно частно лице направо от печатницата, заедно с печатните форми и плаките. Всички файлове, имащи отношение към съдържанието на публикацията мистериозно изчезнаха от компютрите на издателството. И т. н... Митко Попа (авторът, може някой да го помни от времената на сп. "Компютър за вас"), си мълчи като пръдлив по въпроса.

Съжалявам, че изпадам в стила "Васил Фашиста", но това е кошмар, който и досега сънувам понякога.

редактиран от boy4o на 11.11.08 12:05
boy4o
Вто, 11.11.08, 13:41
Не за това иде реч. Става дума за процеси, скрити за самата система (колкото и абсурдно да звучи). Зашити в DLL и т. н...

Поне аз така го разбирам.

phrozencrew
Вто, 11.11.08, 15:06
boy4o, в един друг форум един пич твърди, че книгата "Тайните прекъсвания на Microsoft и IBM" (в 2 тома) представлява малко поокастрен превод на Ralf Brown's Interrupt List, но преведено като справочник. Дали за същата информация става въпрос? Иначе инфото е много интересно.

ПС: От историята ти с изкупения тираж ми се схванаха глезените! Доста притеснително звучи, а и защо ли някой има интерес да покрие тази информация.

anonymous
Сря, 12.11.08, 09:26
Доста интересна тема се заформя

” Ехаа, колко ентусиасти се събрахме........
Нека да видим каква информация ще ни е полезна за писане на тази програма:
1. Промяна на регистъра на Win
1.1. За Windows 9x...XP:
HKEY_CURRENT_USERControl PanelDesktopWallpaper
1.2. Vista - не е ясно все още

2. Промяна на ini-файла на Windows. Използва се WinAPI функция + параметри:
SystemParametersInfo
SPI_SETDESKWALLPAPER
SPIF_SENDWININICHANGE
SPIF_UPDATEANDSENDIN
SPIF_UPDATEINIFILE
SPIF_SENDCHANGE (незабавен ъпдейт, за по-горните не съм ги тествал)
........ „

VBScript

 Set WshShell = WScript.CreateObject("Wscript.Shell")
WshShell.RegWrite "HKCU\Control Panel\Desktop\Wallpaper", "C:\test.bmp"
WshShell.Run "RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters", 0, False
WScript.Quit

Batch File

 @ECHO OFF
 
REG ADD "HKCU\Control Panel\Desktop" /V "Wallpaper" /T REG_SZ /F /D "C:\test.bmp"
RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters

” ..........
Някой ако намери инфо и как се стартира hiden процес ще стане муцка! „

1. Старт на програма като Service.....!!!

2. Scheduled Tasks...

3.

set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.Run "C:\......",0

anonymous
Сря, 12.11.08, 15:22
Открих... сега остава само със Scheduled Tasks да се нагласи или cron....задължително във папката c:\windows\wallpapers картинките трябва да са във .bmp формат/разширение.

set fso = CreateObject("Scripting.FileSystemObject")
set files = fso.GetFolder("c:\windows\wallpapers\").Files
Const HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objReg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
 
intLowNumber = 1
intHighNumber = files.Count
Randomize
intNumber = Int((intHighNumber - intLowNumber + 1) * Rnd + intLowNumber)
 
intActual = 1
for each file in Files
  If intActual = intNumber Then
    strValue = "c:\windows\wallpapers\" & file.Name
  End If
  intActual = intActual +1
next
 
strKeyPath = "Control Panel\Desktop"
ValueName = "Wallpaper"
 
objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, ValueName, strValue

Set WshShell = WScript.CreateObject("Wscript.Shell")
WshShell.Run "RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters", 0, False
WScript.Quit

boy4o
Чет, 13.11.08, 10:58

RE: Конкурс - семпла програма за автоматична смяна на Wallpaper-ите на Desktop-a

boy4o, в един друг форум един пич твърди, че книгата "Тайните прекъсвания на Microsoft и IBM" (в 2 тома) представлява малко поокастрен превод на Ralf Brown's Interrupt List, но преведено като справочник. Дали за същата информация става въпрос? Иначе инфото е много интересно.

ПС: От историята ти с изкупения тираж ми се схванаха глезените! Доста притеснително звучи, а и защо ли някой има интерес да покрие тази информация. „

Не точно същата информация, но от приблизително същия вид. В същност почти не ставаше дума за прекъсвания в прецизния смисъл на термина, а по-скоро за недокументирани функции, настройки и др. под. на Windows-ите XP и Server 2003. Заглавието Митко го беше избрал нарочно по подобие на другата книга.

А кой може да има интерес... Предполагам, този, който е "забравил" да включи всичко това в документацията.

phrozencrew
Чет, 13.11.08, 19:18
armenxxx1, както винаги изскачаш с добри идеи! Железен!
koko5, хубави програмки си предложил! Добре ще е да ги цъкнеш към профила си, като ги предложиш и за добавяне в download.bg. Така още повече потребители ще могат да се възползват от тях.

Все още никой не е предложил GUI версия. Но пък моя ентусиазъм не намалява, въпреки готовите готини програми. Аз ще се опитам да предложа нещо, но все още нямам време да го сглобя. Живот и здраве...

electric_cc
Пет, 14.11.08, 20:16
MySaver.zip Това е програмка, написана на VisualBasic 6.0. Тя преброява всички файлове с разширение JPG. Могат да се добавят и други формати, например GIF. При стартиране на програмата, те се изобразяват през 0.5 секунди, за ускоряване на демонстрацията, но времето може да се направи произволно като се посочи в параметъра Timer.Interval [в милисекунди]. В пакета се намират програмният код и компилиран вариант. Необходимо е да се добави още една процедура, която да променя размерите на Picture1, така, че картините да изглеждат естествено, но това оставям на желаещите да експериментират. При компилацията, при стартиране на Make EXE в полето Application Title трябва да се напише SCRNSAVE:MySaver.
редактиран от electric_cc на 14.11.08 20:18

<1 2 >

Коментар

за нас | за разработчици | за реклама | станете автори | in english  © 1998-2024   Experta Ltd.