GetTempPath(MAX_PATH, @PathName);
FileName:=string(PathName);
BMPFileName:=FileName+'DgDDirskdhenflsa.BMP';
FileName:= FileName+'DgDDirskdhenflsaw.jpg';
if FileExists(FileName) then
DeleteFile(FileName);
Image1.Picture.SaveToFile(FileName);
if (FileName='') Then
begin
Self.Close;
end
else
begin
try
MyJPEG := TJPEGImage.Create;
with MyJPEG do
begin
LoadFromFile(FileName);
MyBMP := TBitmap.Create;
with MyBMP do
begin
Width := MyJPEG.Width;
Height := MyJPEG.Height;
Canvas.Draw(0,0,MyJPEG);
SaveToFile(BMPFileName);
end;
end;
SystemParametersInfo(SPI_SETDESKWALLPAPER,1,pchar(BMPFileName),SPIF_UPDATEINIFILE)
finally
MyJPEG.Free;
MyBMP.Free;
end;
end;程序如上,将Image控件装载的图片释放并生成BMP文件,然后使用SystemParametersInfo设为桌面壁纸
但是怪事出现了,运行了之后竟然神奇的发现Shell Hardware Detection服务被禁用…… USB接口无法用了求教是哪里出问题了,难道是SystemParametersInfo参数设置有误?
FileName:=string(PathName);
BMPFileName:=FileName+'DgDDirskdhenflsa.BMP';
FileName:= FileName+'DgDDirskdhenflsaw.jpg';
if FileExists(FileName) then
DeleteFile(FileName);
Image1.Picture.SaveToFile(FileName);
if (FileName='') Then
begin
Self.Close;
end
else
begin
try
MyJPEG := TJPEGImage.Create;
with MyJPEG do
begin
LoadFromFile(FileName);
MyBMP := TBitmap.Create;
with MyBMP do
begin
Width := MyJPEG.Width;
Height := MyJPEG.Height;
Canvas.Draw(0,0,MyJPEG);
SaveToFile(BMPFileName);
end;
end;
SystemParametersInfo(SPI_SETDESKWALLPAPER,1,pchar(BMPFileName),SPIF_UPDATEINIFILE)
finally
MyJPEG.Free;
MyBMP.Free;
end;
end;程序如上,将Image控件装载的图片释放并生成BMP文件,然后使用SystemParametersInfo设为桌面壁纸
但是怪事出现了,运行了之后竟然神奇的发现Shell Hardware Detection服务被禁用…… USB接口无法用了求教是哪里出问题了,难道是SystemParametersInfo参数设置有误?
var
iad : IActiveDesktop;
strFileName:WideString;
begin
strFileName := AWallPaper;
CoCreateInstance(CLSID_ActiveDesktop,
nil,
CLSCTX_INPROC_SERVER,
StringToGUID(SID_IActiveDesktop),
iad);
iad.SetWallpaper(PWideChar(strFileName),0);
iad.ApplyChanges(AD_APPLY_SAVE);
end;
没发现SystemParametersInfo和这个Shell Hardware Detection(硬件自动播放事件通知)服务有啥关联
就出现了地址错误……