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
A55555



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

Orion9 wrote:
Прикольный глюк. Как оказалось, он связан с функцией выравнивания окна "WinAlign". Может, Loopback глянет, в чём там может быть проблема, а пока можно выравнивать по центру рабочего стола. Для этого нужно заменить строку WinAlign(h_WinShutdown) на WinAlign(h_WinShutdown, 0, DllCall("GetDesktopWindow")). Я не буду скидывать весь код, просто замените фрагмент на новый:

Спасибо, теперь окно видно нормально и когда TC был свернут в момент исчезновения окна копирования TC.
Но этому окну отсчета напрашивается отображение поверх всех окон.

Loopback wrote:

По скрину видно, что стоит большое значение масштабирования в системе, при динамическом создании окна это надо учитывать и корректировать его размеры. Чтобы хорошо смотрелось везде, можно примерно такой алгоритм использовать:

Code:

Func GetDPI()
  Local DC = DllCall("GetDC", "int", 0)
  Local lpy = DllCall("GetDeviceCaps", "handle", DC, "int", 88) # LOGPIXELSX
  DllCall("ReleaseDC", "int", 0, "handle", DC)
  Return lpy
EndFunc

Func Scale(nValue)
  Static dpi = GetDPI()
  Return DllCall("MulDiv", "int", nValue, "int", dpi, "int", 96)
EndFunc


Использовать так:

Code:

    h_WinShutdown = DllCall("CreateWindowExW", _
                            "dword", 0, _
                            "wstr", "msctls_progress32", _
                            "wstr", "", _
                            "dword", 0x10C80000, _
                            "int", 200, "int", 100, _
                            "int", Scale(300), "int", Scale(50), _
                            "handle", AUTORUN_TCHANDLE, _
                            "handle", 0, "handle", 0, "ptr", 0, _
                            "handle")

Loopback
Спасибо. Ваш вариант тоже работает.

Orion9 wrote:
Теперь действительно смотрится лучше.

Да, ничего не скажешь, наглядно и прикольно прозрачность смотрится, аж захотелось на постоянно добавить окну TC прозрачности немного.
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group