Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Autorun 
Author Message
Orion9



PostPosted: Sat Sep 06, 2025 00:42    Post subject: Reply with quote

Loopback
Помнится, делал корректировку на масштабирование экрана в подсказке к главной панели инструментов несколько страниц назад, тогда использовал такой метод:
Code:
    # дескриптор монитора окна ТС
    Local hMon = DllCall("MonitorFromWindow", "hwnd", AUTORUN_TCHANDLE, "dword", 2)
    # информация о масштабировании экрана
    Local nScale = 0, bRes
    bRes = DllCall("Shcore.dll\GetScaleFactorForMonitor", "hwnd", hMon, "dword*", @nScale)

Но предложенные вами функции выглядят более основательно, поэтому буду использовать их. Слышал, что для полноты картины нужно ещё учитывать размер текста, который пользователь тоже может увеличить в настройках системы в разделе специальных возможностей. Один из способов - чтение значения из реестра:
Code:
RegRead nTextScale "HKCU\Software\Microsoft\Accessibility" "TextScaleFactor" 100
    nTextScale = Round(nTextScale/100,2)

Далее умножить полученный коэффициент на необходимое значение, т.е.
Code:
h_WinShutdown = DllCall("CreateWindowExW", _
                            "dword", 0, _
                            "wstr", "msctls_progress32", _
                            "wstr", "", _
                            "dword", 0x10C80000, _
                            "int", 200, "int", 100, "int", Round(Scale(300)*nTextScale,0), "int", Scale(50), _
                            "handle", AUTORUN_TCHANDLE, _
                            "handle", 0, "handle", 0, "ptr", 0, _
                            "handle")

В общем, вот полный обновленный код всего, что ранее было, включая две разные функции для получения значения масштабирования:
 Hidden text

Loopback wrote:
В каком смысле затенить?

Как было в ХР при выключении системы: фон затенялся и становился нецветным, а окно с выбором действия оставалось в цвете поверх него. Но думаю, сейчас это не надо - прозрачность даже лучше. Словно призрак остается от комманндера, стоящий лишь в один шаг от полного исчезновения вместе с системой ))

A55555 wrote:
Но этому окну отсчета напрашивается отображение поверх всех окон.

Наверное, можно. Надо глянуть. Может, автор плагина ответ уже знает?
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group