1 (изменено: Indomito, 2018-12-25 05:54:42)

Тема: AHK: Убрать полосу заголовка и бордюр у окна приложения.

Приветствую.

Давно не дела и просто забыл.


WinSet, Style, -0xC00000, A ;Удаляет полосу заголовка (WS_CAPTION).
WinSet, Style, -0x800000, A ;Удаляет бордюр окна      (WS_BORDER).
Sleep 15000
WinSet, Style, +0x800000, A ;Выводит бордюр окна      (WS_BORDER).
WinSet, Style, +0xC00000, A ;Выводит полосу заголовка (WS_CAPTION).
Return

Меня интересует только WS_BORDER он просто не пропадает, т.е. эффект как от кода.

WinSet, Style, -0xC00000, A ;Удаляет полосу заголовка (WS_CAPTION).
Sleep 15000
WinSet, Style, +0xC00000, A ;Выводит полосу заголовка (WS_CAPTION).
Return

Знаю что я накосячил, но где?
Или надо сложить WS_CAPTION и WS_BORDER?

UPD
Сложение не помогло, бордюр не пропадает - тестировал на NP++.

WinSet, Style, -0x1400000, A
Sleep 15000
WinSet, Style, +0x1400000, A
Return
"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

2 (изменено: teadrinker, 2018-12-25 12:56:37)

Re: AHK: Убрать полосу заголовка и бордюр у окна приложения.

Попробуйте так:

WS_BORDER := 0x800000, WS_SIZEBOX := 0x40000, WS_DLGFRAME := 0x400000
$F1::
   WinExist("A")
   WinGet, styles, Style
   WinSet, Style, % "-" . (WS_BORDER|WS_SIZEBOX|WS_DLGFRAME)

   Sleep, 1000
   WinSet, Style, % styles
   Return
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Убрать полосу заголовка и бордюр у окна приложения.

teadrinker
Спасибо, а то я себе голову сломал, разные окна реагируют по разному.

А вот такой код валиден?

 WS_BORDER := 0x800000, WS_SIZEBOX := 0x40000, WS_DLGFRAME := 0x400000
 DefaultStyles := 0
 NoFrameStyles := -1 * (WS_BORDER|WS_SIZEBOX|WS_DLGFRAME)
$F1::
   WinExist("A")
   WinGet, DefaultStyles, Style
   WinSet, Style, NoFrameStyles ;% "-" . (WS_BORDER|WS_SIZEBOX|WS_DLGFRAME)

   Sleep, 1000
   WinSet, Style, DefaultStyles ;% styles
Return

Просто у меня применяется много стилей и приходится их сравнивать IF

Если не сложно - ответьте.

P.S. Он работает, но я боюсь нарваться на "подводные камни".

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

4 (изменено: teadrinker, 2018-12-26 01:36:29)

Re: AHK: Убрать полосу заголовка и бордюр у окна приложения.

Такой не валиден, команда WinSet не поддерживает выражения, переменные в параметрах должны обрамляться знаками процента.

Indomito пишет:

P.S. Он работает

Нет.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5 (изменено: Indomito, 2018-12-26 01:43:49)

Re: AHK: Убрать полосу заголовка и бордюр у окна приложения.

Просто забыл и поспешил.

команда WinSet не поддерживает выражения, переменные в параметрах должны обрамляться знаками процента.


;Пред установки
 WS_BORDER := 0x800000, WS_SIZEBOX := 0x40000, WS_DLGFRAME := 0x400000
 DefaultStyles := ""
 NoFrameStyles := "-" . (WS_BORDER|WS_SIZEBOX|WS_DLGFRAME)
$F1::
   WinExist("A")
   WinGet, DefaultStyles, Style
   WinSet, Style, % NoFrameStyles

   Sleep, 1000
   WinSet, Style, % DefaultStyles
Return

Я ведь прав или меня глаза обманывают?

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

6

Re: AHK: Убрать полосу заголовка и бордюр у окна приложения.

Так правильно, только DefaultStyles := "" лишнее.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

7 (изменено: Indomito, 2018-12-26 02:10:24)

Re: AHK: Убрать полосу заголовка и бордюр у окна приложения.

-del

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

8

Re: AHK: Убрать полосу заголовка и бордюр у окна приложения.

Indomito, кто вам мешает это проверить самому?

 WS_BORDER := 0x800000, WS_SIZEBOX := 0x40000, WS_DLGFRAME := 0x400000
a := -1 * (WS_BORDER|WS_SIZEBOX|WS_DLGFRAME)
 WS_BORDER := 0x800000, WS_SIZEBOX := 0x40000, WS_DLGFRAME := 0x400000
b := "-" . (WS_BORDER|WS_SIZEBOX|WS_DLGFRAME)
if (a = b)
   msgbox

9 (изменено: Indomito, 2018-12-26 02:09:24)

Re: AHK: Убрать полосу заголовка и бордюр у окна приложения.

По сути вопрос снят.
Спасибо, целый день мучился.

Malcev, Я так и сделал, но сам себе не верю и в первый раз не сработало, а проверка прошла, но забыл/пропустил % в WinSet.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download