Loopback
|
Posted: Sun Sep 07, 2025 13:21 Post subject: |
|
|
Orion9 wrote: | возможность масштабировать экран из настроек Windows появилась не только с Win8? |
В семерке точно есть, да и в XP кажется уже было. Другое дело, что масштабирование работало мягко говоря так себе.
A55555 wrote: | Подскажите пожалуйста ещё, как окно счетчика чучуть подвинуть вправо и вверх от центра экрана или лучше не трогать? |
Добавьте три параметра в функцию WinAlign, как в коде ниже, и попробуйте выделенные значения (это смещения от установленной позиции) менять как будет удобно.
WinAlign(h_WinShutdown, 0, DllCall("GetDesktopWindow"), 0, 100, -100)
A55555 wrote: | после нажатия F11 выскакивает ошибка |
Поправил переменные и умолчания настроек, вроде сейчас работает.
 Hidden text
Code: |
LoadLibrary Plugins\TCFS2Tools.dll
LoadLibrary Plugins\Autorun_Tweaks.dll
LoadLibrary Plugins\Autorun_Runtime.dll
LoadLibrary Plugins\Autorun_Sysinfo.dll
# Автор — Flasher
# F11 — переключение в зависимости от наличия заголовков панелей
# между полноэкранным режимом (только вкладки) и исходным
# В каталоге плагина будет сохранён Layout.ini с соответствующей секцией
# основного файла для восстановления отображения необходимых компонентов
# при повторных нажатиях горячей клавиши, если таковые оказались скрыты.
# При указании параметра 0 размер окна меняться не будет.
SetHotKeyAction /H:F11 ToggleFullScreen
WinGetPos('cX', 'cY', 'cW', 'cH')
If Not FileExist(AUTORUN_PATH & '\Layout.ini') Then
ShellExec /SW_HIDE /WAIT %ComSpec% '/q/c echo [Layout]>%AUTORUN_PATH%\Layout.ini'
Local sLayout = IniReadSection('~/R', COMMANDER_INI, 'Layout')
If StrPos(sLayout, '=') Then _
IniWriteSection(AUTORUN_PATH & '\Layout.ini', 'Layout', sLayout)
Else
Local sLayout = IniReadSection(AUTORUN_PATH & '\Layout.ini', 'Layout')
If StrPos(sLayout, '=') Then _
IniWriteSection('~/R', COMMANDER_INI, 'Layout', sLayout)
EndIf
Func ToggleFullScreen(WinChange=1)
Static HasTabHeader, HasStatusBar, HasDriveList, HasKeyButtons, HasCmdLine, _
HasDriveBar, HasButtonBar, HasButtonBar2, HasMainHeader
IniRead /R HasCurDir %COMMANDER_INI% 'Layout' 'CurDir'
If HasCurDir Then SendMessage(AUTORUN_TCHANDLE, 11, 0)
If WinChange Then
# SPI_GETWORKAREA - desktop area without taskbar
Static wAreaX1 = SystemParametersInfo(48, 1), _
wAreaY1 = SystemParametersInfo(48, 2), _
wAreaX2 = SystemParametersInfo(48, 3), _
wAreaY2 = SystemParametersInfo(48, 4)
If HasCurDir Then
Static wX = wAreaX1 ? wAreaX1 + 1 : 0, _
wY = wAreaY1 ? wAreaY1 + 1 : 0, _
wW = wAreaX2 = SYSINFO_DESKTOPWIDTH ? wAreaX2 - wAreaX1 - 1 : wAreaX2 - wAreaX1, _
wH = wAreaY2 = SYSINFO_DESKTOPHEIGHT ? wAreaY2 - wAreaY1 - 1 : wAreaY2 - wAreaY1
If WinGetState(6) Then WinSetState(9)
WinSetPos(wX, wY, wW, wH)
Else
If WinGetState(6) Then WinSetState(9)
If cX <> '' Then WinSetPos(cX, cY, cW, cH)
EndIf
EndIf
If HasCurDir Then
HasMainHeader = WinHasStyle(12582912)
PostMessage(AUTORUN_TCHANDLE, 1075, 65538)
IniRead /R HasTabHeader %COMMANDER_INI% 'Layout' 'TabHeader' 1
IniRead /R HasStatusBar %COMMANDER_INI% 'Layout' 'StatusBar' 1
IniRead /R HasDriveList %COMMANDER_INI% 'Layout' 'DriveCombo' 1
IniRead /R HasKeyButtons %COMMANDER_INI% 'Layout' 'KeyButtons' 1
IniRead /R HasCmdLine %COMMANDER_INI% 'Layout' 'CmdLine' 1
IniRead /R HasDriveBar %COMMANDER_INI% 'Layout' 'DriveBar1' 0
IniRead /R HasButtonBar %COMMANDER_INI% 'Layout' 'ButtonBar' 1
IniRead /R HasButtonBar2 %COMMANDER_INI% 'Layout' 'ButtonBarVertical' 1
SendCommand 2902 2
SendCommand 2906 2
SendCommand 2907 2
SendCommand 2908 2
SendCommand 2909 2
SendCommand 2910 2
SendCommand 2911 2
SendCommand 2944 2
SendCommand 2901 2
WinSetStyle 12582912 4
Else
PostMessage(AUTORUN_TCHANDLE, 1075, 65537)
If HasButtonBar Then SendCommand 2901 1
If HasDriveBar Then SendCommand 2902 1
If HasDriveList Then SendCommand 2906 1
SendCommand 2907 1
If HasTabHeader Then SendCommand 2908 1
If HasStatusBar Then SendCommand 2909 1
If HasCmdLine Then SendCommand 2910 1
If HasKeyButtons Then SendCommand 2911 1
If HasButtonBar2 Then SendCommand 2944 1
If HasMainHeader Then WinSetStyle 12582912 2
EndIf
SendCommand 2918
If HasCurDir Then SendMessage(AUTORUN_TCHANDLE, 11, 1)
WinRedRaw 2
EndFunc
Pragma AutorunFinalizeSection
If FileExist(AUTORUN_PATH & '\Layout.ini') Then
sLayout = IniReadSection(AUTORUN_PATH & '\Layout.ini', 'Layout')
If StrPos(sLayout, '=') Then
IniWriteSection('~/R', COMMANDER_INI, 'Layout', sLayout)
Sleep(20)
EndIf
EndIf
|
Но если что, код не мой, его автор присутствует на оффоруме ghisler.ch.
A55555 wrote: | Можно ли сделать, чтоб оно сразу выполняло вход в полноэкранный режим при старте TC? |
Добавьте вызов ToggleFullScreen после инициализации, вот тут:
Code: |
Local sLayout = IniReadSection(AUTORUN_PATH & '\Layout.ini', 'Layout')
If StrPos(sLayout, '=') Then _
IniWriteSection('~/R', COMMANDER_INI, 'Layout', sLayout)
EndIf
# переход в полноэкранный режим при старте
ToggleFullScreen()
Func ToggleFullScreen(WinChange=1)
Static HasTabHeader, HasStatusBar, HasDriveList, HasKeyButtons, HasCmdLine, _
HasDriveBar, HasButtonBar, HasButtonBar2, HasMainHeader
|
|
|