Página 1 de 1
Funcion Cambiar fondo Delphi traduccion
Publicado: 09 Ago 2015, 03:50
por crack81
Viendo que Doddy sigue aportando codigo sobre la api de windows traduje esta funcion que publico
http://indetectables.net/viewtopic.php?f=100&t=53787
uses
SysUtils,
windows;
function cambiarFondo(const imagen:string):boolean;
begin
Result:=SystemParametersInfo(20,0,@imagen[1],0);
end;
var
foto:string;
begin
writeln(cambiarFondo('image.bmp'));
writeln('Imagen cambiada');
readln;
end.
Re: Funcion Cambiar fondo Delphi traduccion
Publicado: 09 Ago 2015, 04:18
por Pink
Muy Bien. usa constantes en ves de números mágicos.
Saludos
Re: Funcion Cambiar fondo Delphi traduccion
Publicado: 09 Ago 2015, 04:25
por crack81
Anotado pink saludos
Por ultimo a los que no tenga muchos conocimientos sobre esta funcion siempre es recomendable ver su documentacion para que estamos tocando asi que revisar esto: [Enlace externo eliminado para invitados]
Re: Funcion Cambiar fondo Delphi traduccion
Publicado: 09 Ago 2015, 04:34
por Pink
También lo puedes hacer con la interfaz IActiveDesktop
Saludos
Re: Funcion Cambiar fondo Delphi traduccion
Publicado: 09 Ago 2015, 07:31
por crack81
En efecto pink me puse a revisar en internet y mire saque esta implementacion de una pagina rusa
uses
SysUtils,
ComObj,ShlObj,ActiveX,windows;
function ChangeWallpaper(const Image: String): Boolean;
const
CLSID_ActiveDesktop: TGUID = '{75048700-EF1F-11D0-9888-006097DEACF9}';
var
ADesktop: IActiveDesktop;
wstr: array [0..MAX_PATH]of widechar;
begin
CoInitialize(nil);
ADesktop := CreateComObject(CLSID_ActiveDesktop)as IActiveDesktop;
try
StringToWideChar(aFile, wstr, MAX_PATH);
ADesktop.SetWallpaper(wstr, 0);
ADesktop.ApplyChanges(AD_APPLY_ALL or AD_APPLY_FORCE);
finally
CoUninitialize;
end;
Result:=True;
end;
var
foto:string;
begin
ChangeWallpaper('C:\image.bmp');
Writeln('Imagen cambiada');
Readln;
end.
saludos...
Re: Funcion Cambiar fondo Delphi traduccion
Publicado: 09 Ago 2015, 15:36
por Pink
Porque no usaran cadenas unicode de una ves. (widestring).
En lazarus tengo que declarar la interfaz ya que no la trae por defecto :S.
Saludos
Re: Funcion Cambiar fondo Delphi traduccion
Publicado: 09 Ago 2015, 20:58
por crack81
No se si a esto te refieras
function ChangeWallpaper(const Image: widestring): Boolean;
const
CLSID_ActiveDesktop: TGUID = '{75048700-EF1F-11D0-9888-006097DEACF9}';
var
ADesktop: IActiveDesktop;
begin
CoInitialize(nil);
ADesktop := CreateComObject(CLSID_ActiveDesktop)as IActiveDesktop;
try
ADesktop.SetWallpaper(pwidechar(Image), 0);
ADesktop.ApplyChanges(AD_APPLY_ALL or AD_APPLY_FORCE);
finally
CoUninitialize;
end;
Result:=True;
end;
Por parte de lazarus es cierto lo que dices
Saludos..
Re: Funcion Cambiar fondo Delphi traduccion
Publicado: 09 Ago 2015, 21:17
por Pink
Si a eso me refiero.
Saludos