Посмотрел что в этой функции сотня запросов, решил поискать для себя интересное, в итоге:
Вот это давно хотел, изменить размер шрифта в проводнике, без смены пользователя, мгновенно
Define size.l, spinfo.ICONMETRICS spinfo\cbSize = SizeOf(spinfo) SystemParametersInfo_(#SPI_GETICONMETRICS, 0, @spinfo, 0) size = PeekL(@spinfo\lfFont\lfHeight) PokeL(@spinfo\lfFont\lfHeight, size+2) SystemParametersInfo_(#SPI_SETICONMETRICS, 0, @spinfo, #SPIF_UPDATEINIFILE | #SPIF_SENDWININICHANGE) SystemParametersInfo_(#SPI_SETICONS, 0, #Null ,0)
Wallpaper - получить/задать
Define spinfo.s = Space(#MAX_PATH) SystemParametersInfo_(#SPI_GETDESKWALLPAPER, #MAX_PATH, @spinfo, 0) Debug spinfo Define spinfo.s = "C:\Windows\Web\Screen\img102.jpg" Debug SystemParametersInfo_(#SPI_SETDESKWALLPAPER, 0, @spinfo, 0)
локаль (выводит 1049)
Define HKL.l ; #SPI_SETDEFAULTINPUTLANG SystemParametersInfo_(#SPI_GETDEFAULTINPUTLANG, 0, @HKL, 0) Debug HKL >> 16 Debug HKL & $FFFF
шрифт в проводнике "значки"
Define size, spinfo.ICONMETRICS spinfo\cbSize = SizeOf(spinfo) SystemParametersInfo_(#SPI_GETICONMETRICS, 0, @spinfo, 0) size = - PeekL(@spinfo\lfFont\lfHeight) * 0.752812499999996 ; 0.75 Debug size Define size, spinfo.LOGFONT SystemParametersInfo_(#SPI_GETICONTITLELOGFONT, 0, @spinfo, 0) size = - PeekL(@spinfo\lfHeight) * 0.752812499999996 ; 0.75 Debug size
И это я ещё до конца не дочитал километровую простыню.
Да, ещё забыл, выдрал кусок кратко, рабочая область экрана, если надо разместить окно чтобы не пересекалось с панелью задач, которая может быть вертикально и любых размеров.
Define rect.RECT, modification SystemParametersInfo_(#SPI_GETWORKAREA,0,rect,0) modification = rect\bottom - rect\top - GetSystemMetrics_(8) * 2 - GetSystemMetrics_(#SM_CYCAPTION)
Отредактировано AZJIO (20.02.2022 19:49:25)