Orion9

|
Posted: Fri Sep 05, 2025 00:37 Post subject: |
|
|
A55555 wrote: | но очень маленькое окошко со строкой отсчета времени до выключения |
Окно в том виде, в котором оно есть, конечно, только для примера. Его размеры можно изменить. Но...
A55555 wrote: | и оно не появляется, если твое окно TC неактивно, например ты в браузере, а TC свётрнут |
А какая у вас система? Что-то я не могу вот так с ходу определить ее по вашему окну.
Кстати, именно это я и имел в виду, когда говорил про "большую цену". Ведь порой чтобы довести всё до ума, нужно провести кучу тестов на разных системах, мониторах, разрешениях экрана, разрядностях ТС и прочих окружающих условиях. И это самое неприятное и времязатратное. Поэтому я и написал, что по большому счету оно того не стоит. Проще взять какое-нибудь готовое решение и спокойно им пользоваться.
Но если код будет развиваться, то вот пришла одна прикольная мысля. Замените у себя функцию CopyMonitor() на эту:
 Hidden text Code: | Func CopyMonitor()
Static hCopyWnd = 0
# Если монитор уже запущен - остановить
If g_CopyMonitor Then
g_CopyMonitor = false
Return
EndIf
hCopyWnd = WinFind(0, "TDLG2FILEACTIONMIN")
If hCopyWnd = 0 Then
ShowHint("Копирование не запущено", 0, 0, 1000, 1)
WinAlign(LAST_HINT_WINDOW)
Return
EndIf
g_CopyMonitor = true
# установка значения прозрачности
WinSetStyle(0x80000, 3)
DllCall("SetLayeredWindowAttributes", "hwnd", AUTORUN_TCHANDLE, _
"ptr", 0, "byte", 192, "dword", 2)
ShowHint("Монитор выключения запущен, ожидание завершения копирования...", 0, 0, 1000, 1)
WinAlign(LAST_HINT_WINDOW)
While hCopyWnd <> 0
For i = 1 To 10
If Not g_CopyMonitor Then Break
Sleep(100)
Next
If Not g_CopyMonitor Then Break
hCopyWnd = WinFind(0, "TDLG2FILEACTIONMIN")
Wend
If g_CopyMonitor Then
g_CopyMonitor = false
WinShutdown()
Else
ShowHint("Монитор выключения остановлен", 0, 0, 1000, 1)
WinAlign(LAST_HINT_WINDOW)
EndIf
DllCall("SetLayeredWindowAttributes", "hwnd", AUTORUN_TCHANDLE, _
"ptr", 0, "byte", 255, "dword", 2)
EndFunc |
Здесь я добавил переключение прозрачности окна ТС, взяв пример из справки. Теперь стало намного понятнее, когда включена функция отключения ПК. Если Loopback знает, как затенить окно, будет вообще супер.
P.S. у меня сечас просто период такой тяжелый, что со временем совсем туго, и это длится уже давно, и просвета не видно. Тот код, что я сбрасывал на предыдущей странице, я делал где-то дней 10, выкраивая буквально по часику в день. Но боюсь, сейчас и этого не смогу себе позволить. Т.ч. если Loopback или кто-то другой продолжит развитие данного кода, буду только "за" ) |
|