Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Чтобы рисунок на рабочий стол сам ставился (https://forum.antichat.xyz/showthread.php?t=61565)

Tapaceuka 11.02.2008 22:48

Чтобы рисунок на рабочий стол сам ставился
 
Здраствуйте.
Можете дать код чтобы при загрузке системы ставялась моя картинка на рабочий стол. Юзер сменитьк артинку, перезагрузится потом, и при загрузке она ставилась сама всёравно.

z01b 11.02.2008 23:06

Цитата:

Сообщение от desTiny
z01b, а ты умеешь?=)

ня =)
ЗЫ А если по теме, вот нарыл ключик в реестре - HKEY_USERS\.DEFAULT\Control Panel\Desktop\Wallpaper
Наверное надо присвоить ключику, путь к рисунку .

desTiny 11.02.2008 23:21

Точно помню - апишное что-то было... Но что?...

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

Tapaceuka 11.02.2008 23:42

мне надо на Delphi 7 такую вещь с рисунком рабочего стола

Tapaceuka 11.02.2008 23:44

Надо чтоыб при запуске проги копировался рисунок куда нить далеко далеко и както надо дабывить в реестр тобы этот фон при загрузке делался сам

nc.STRIEM 12.02.2008 01:38

http://taran.su/ob.rar

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

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

159932 12.02.2008 01:50

есть win прога котороя сама меняет обои - можно настроить чтоб после перезакгрузки сама меняла и выключалась
Vetton Wallpaper

A2GIL 12.02.2008 01:58

Цитата:

Сообщение от Tapaceuka
Надо чтоыб при запуске проги копировался рисунок куда нить далеко далеко и както надо дабывить в реестр тобы этот фон при загрузке делался сам

А вот то что просил на Delphi
Тогда прогу нужно еще в автозагрузку врубить:
Код:

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, зачем создавать отдельный топик, задавай вопросы в уже существующем!

GlOFF 12.02.2008 02:25

А ещё где-то в папке Windows есть директория и .BMP файл текущей обои. Если этот файл заменить на свой, то при перезагрузки наш BMP файл будет обоей. Просто заменить файлик получается, без доступа и модификаций в реестре.

W!z@rD 12.02.2008 08:18

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

и вот еще:
Цитата:

program Project1;

uses Windows, SysUtils, Classes, Registry, Messages;

var msg:TMsg;

function GetFileSize(FileName:string):integer;//получаем размер файла
var FS:TFileStream;
begin
try
FS:=TFileStream.Create(FileName,fmOpenRead);//создаем поток
except result:=-1;//если ошибка во время создания потока, то вернуть значение -1
end;
result:=FS.Size;//возвращаем размер
FS.Free; //освобождаем поток
end;

function Wall:string;//путь к текущим обоям
var
reg:TRegistry;
begin
reg:=TRegistry.Create;//создаем хендл
reg.RootKey:=HKEY_CURRENT_USER; //для текущего пользователя
reg.OpenKey('\Control Panel\Desktop\',false); //открываем ветвь
result:=reg.ReadString('Wallpaper');//возвращаем путь прочитанный в ключе реестра
reg.Free;//освобождаем хендл...
end;

procedure Check(var Msg:TMessage);message SPI_SETDESKWALLPAPER;
var
OurFile:string;
OK:array[0..$FF] of Char;
begin
OurFile:=ExtractFilePath(ParamStr(0))+'wall.bmp';//наш файл
StrPCopy(OK,OurFile);
//ну и проверки на вшивость =)
//до тех пор пока не совпадет размер
//изменять
while GetFileSize(wall)<>GetFileSize(OurFile) do
SystemParametersInfo(SPI_SETDESKWALLPAPER,0,@OK,SP IF_UPDATEINIFILE);
end;

begin
check;
while GetMessage(msg,SPI_SETDESKWALLPAPER,0,0)do begin
DispatchMessage(msg);
TranslateMessage(msg);
end;
end.
Насчет пути:
C:\Documents and Settings\UserName\Local Settings\Application Data\Microsoft\Wallpaper1.bmp
кажется...


Время: 09:29