1 (изменено: Next, 2015-03-06 19:51:59)

Тема: AHK: Не стабильный resize

Hi!
В некоторых приложениях WinMove почему-то не меняет размер окна, даже там, где руками он легко меняется. Можно как-то помочь этой команде выполнить resize?

2

Re: AHK: Не стабильный resize

Next, скоро придет строгий модератор и скажет:

Next, ознакомьтесь с этой темой, отредактируйте свой пост.

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

3

Re: AHK: Не стабильный resize

Открытый класс
PS! Нужно уметь отличать случаи скрытого противопоставления:
1) к такому предложению можно задать вопрос
Пример: Мы посадили не серебристую ель. (А какую?)
2) такое предложение можно продлить при помощи одного из противительных союзов
Пример: Мы посадили не серебристую ель, а зелёную.

Не стабильный resize, а изменчивый. Так что тут всё нормально (хотя, resize можно было на русский перевести).

Поэтому можно перейти к вопросу - в каком приложении так бывает? Режим окна оконный? Приложение графическое?

4 (изменено: Next, 2015-03-06 21:26:58)

Re: AHK: Не стабильный resize

Оконный. Можно сворачивать, есть рамка, за которую можно тянуть меняя размер окна.  Приложение смешанное, графика, текст.

5 (изменено: Alectric, 2015-03-06 21:35:26)

Re: AHK: Не стабильный resize

Окно активно во время выполнения WinMove?
Если да, то можно так:

winmove,% "ahk_id " WinExist("A"),,,,800,600
Win 10 x64
AHK
                       Справка AHK v1 тебе в помощь.

6

Re: AHK: Не стабильный resize

На аглицком форуме похожая проблема обсуждалась.
Что-то там получилось, когда прикрутили оконные сообщения. Ещё команда DllCall закомментирована, можно попытаться вместо WinMove использовать.

F8::
SetTitleMatchMode, 2
IfWinExist, PuTTY ahk_class PuTTY
{
    WinGet, hwndputty, id
    ;hwndputty:="ahk_id " hwndputty
    WinGetTitle, t, ahk_id %hwndputty%
    WinGetPos, x, y, w, h
    msgbox=,
    (LTrim
        hwndputty(%hwndputty%)
        t(%t%)
        x(%x%) y(%y%) w(%w%) h(%h%)
    )
    ;WinMove, , , , , , % h+15
    MoveWindow(hwndputty, x, y, w, h+15)
    WinGetPos, x, y, w, h
    msgbox=,
    (LTrim
        hwndputty(%hwndputty%)
        t(%t%)
        x(%x%) y(%y%) w(%w%) h(%h%)
    )
}
Else msgbox, 16, , PuTTY not found!
return

MoveWindow(hwnd, x, y, w="", h="", repaint=1)
{
    WM_ENTERSIZEMOVE=0x0231
     WM_EXITSIZEMOVE=0x0232
    SendMessage, WM_ENTERSIZEMOVE
    WinMove, , , x, y, w, h
    ;DllCall("MoveWindow", "UInt", hwnd, "Int", x, "Int", y, "Int", w, "Int", h, "Int", repaint)
    SendMessage, WM_EXITSIZEMOVE
}

7

Re: AHK: Не стабильный resize

Alectric пишет:

Окно активно во время выполнения WinMove?
Если да, то можно так:

winmove,% "ahk_id " WinExist("A"),,,,800,600

  Именно winmove и не работает. Иногда.

8

Re: AHK: Не стабильный resize

ypppu пишет:

Что-то там получилось, когда прикрутили оконные сообщения.

  Работает также как и winmove.

9

Re: AHK: Не стабильный resize

Можно через PostMessage выполнить те же действия, что выполняются мышкой при изменении размера окна?  Я пытался поймать через Winspector по wm_size, размерам окна до и после,  но утонул в куче сообщений, не смотря на фильтры и ловлю миллисекунд. Знать бы точно что искать.

10 (изменено: Alectric, 2015-03-07 07:47:50)

Re: AHK: Не стабильный resize

Next пишет:

Иногда.

При каких условиях, это самое "иногда" случается?
Было бы проще, если бы можно было увидеть ваш код.

Win 10 x64
AHK
                       Справка AHK v1 тебе в помощь.

11 (изменено: Next, 2015-03-07 15:57:25)

Re: AHK: Не стабильный resize


^1::
WinMove,A,,,,500,200
return

12

Re: AHK: Не стабильный resize

Вопрос снимается.

13

Re: AHK: Не стабильный resize

Найдено решение?

14

Re: AHK: Не стабильный resize

Нет, отказался от этого пути.