Code
Procedure.s hex__(h.s)
Protected y.s,z.s=""
h=LCase(h)
If(Mid(h,1,1)="#"):h=Right(h,Len(h)-1):EndIf
If Not((Len(h)=3)Or(Len(h)=6))
ProcedureReturn("0"):EndIf
For x=1 To Len(h):y=Mid(h,x,1)
If Not((y>="0")And(y<="9")Or(y>="a")And(y<="f"))
ProcedureReturn("0"):EndIf
If(Len(h)=3):z+y+y:EndIf
Next
If(z):h=z:EndIf
ProcedureReturn(h)
EndProcedure
Procedure.i G(c1.s,c2.s)
c1=hex__(c1)
c2=hex__(c2)
If(c1="0")Or(c2="0"):Debug "err/hex":End:EndIf
r1=Val(("$"+Mid(c1,1,2))):g1=Val(("$"+Mid(c1,3,2))):b1=Val(("$"+Mid(c1,5,2)))
r2=Val(("$"+Mid(c2,1,2))):g2=Val(("$"+Mid(c2,3,2))):b2=Val(("$"+Mid(c2,5,2)))
CreateImage(0,GetSystemMetrics_(#SM_CXSCREEN),GetSystemMetrics_(#SM_CYSCREEN))
StartDrawing(ImageOutput(0))
For y=0 To ImageHeight(0)
r=Round(r1+(r2-r1)*(y/ImageWidth(0)),#PB_Round_Down)
g=Round(g1+(g2-g1)*(y/ImageWidth(0)),#PB_Round_Down)
b=Round(b1+(b2-b1)*(y/ImageWidth(0)),#PB_Round_Down)
Line(0,y,ImageWidth(0)*2,1,RGB(r,g,b))
Next
StopDrawing()
;ProcedureReturn ImageID(0)
EndProcedure
#bmp_file="c:\bbbbb.bmp"
rnd.s=Str(Random(999999)) ; - случайная Hex Val
rnd=MD5Fingerprint(@rnd,StringByteLength(rnd))
G(Mid(rnd,1,6),Mid(rnd,7,6)) ;hex/from,to (#123,A4c1ff,..)
SaveImage(0,#bmp_file)
SystemParametersInfo_(#SPI_SETDESKWALLPAPER,0,#bmp_file,#SPIF_UPDATEINIFILE)
End