1

Тема: AHK: Аналог Gui MinSize

Есть ли в WINAPI аналог Gui +MinSize, чтобы установить значения в стороннем окне, и узнать их значения?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

2

Re: AHK: Аналог Gui MinSize

Перехватывай WM_GETMINMAXINFO сообщение.

3 (изменено: serzh82saratov, 2023-01-13 17:21:22)

Re: AHK: Аналог Gui MinSize

Malcev
Нашёл на офф форуме.

WM_GETMINMAXINFO := 0x0024
 
	info := GetMinMaxInfo()
	MsgBox, % info["min_x"] "`n" info["min_y"] "`n" info["max_y"] "`n" info["max_y"]
return

GetMinMaxInfo() {
	Global WM_GETMINMAXINFO
	Static MINMAXINFO := 0, Dummy := NumPut(VarSetCapacity(MINMAXINFO, 40 + (32 << !!A_IsUnicode)), MINMAXINFO, 0, "UInt")
	NumPut(0, MINMAXINFO, 24, "Int")
	NumPut(0, MINMAXINFO, 28, "Int")
	NumPut(0, MINMAXINFO, 32, "Int")
	NumPut(0, MINMAXINFO, 36, "Int")
	SendMessage, % WM_GETMINMAXINFO, , &MINMAXINFO, , A
	return {"min_x" : NumGet(MINMAXINFO, 24, "Int"), "min_y" : NumGet(MINMAXINFO, 28, "Int"), "max_x" : NumGet(MINMAXINFO, 32, "Int"), "max_y" : NumGet(MINMAXINFO, 36, "Int")}
}

Но как установить значения не нашёл. И почему ты указал перехват?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

4

Re: AHK: Аналог Gui MinSize

https://www.autohotkey.com/boards/viewtopic.php?t=40009
Тут тоже не нашли решение.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

5

Re: AHK: Аналог Gui MinSize

Инжектиться и перехватывать надо потому, что чужой процесс.

6

Re: AHK: Аналог Gui MinSize

https://stackoverflow.com/questions/176 … indow-size
Тут пишут что не катит.
Ты пробовал, нет примера со своим окном? Не найду механизм где перехват, и как и что отправлять обратно.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

7

Re: AHK: Аналог Gui MinSize

Со своим как-нибудь так:

OnMessage(WM_GETMINMAXINFO := 0x0024, "GetMinMaxInfo")
Gui, +Resize
Gui, show, w600 h600
return


GetMinMaxInfo(wParam, lParam)
{
   NumPut(500, lParam+0, 24, "int")
   NumPut(500, lParam+0, 28, "int")
   NumPut(800, lParam+0, 32, "int")
   NumPut(800, lParam+0, 36, "int")
   return true
}

8

Re: AHK: Аналог Gui MinSize

Спасибо!

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

9

Re: AHK: Аналог Gui MinSize

Не напомнишь как перехватывать оконные сообщения? Нашёл пример с user32, про WM_GETMINMAXINFO не помню уже куда копать.

code =
(LTrim
	SetWorkingDir, %A_ScriptDir%
	#Include %A_ScriptDir%\Lib\MinHook.ahk

	MsgBox `% hook1 := New MinHook("user32.dll", "SetDlgItemTextW", "SetDlgItemTextW_Hook")
	hook1.Enable()
	return
	 
	SetDlgItemTextW_Hook(hDlg, nIDDlgItem, lpString) {
		global hook1
		return DllCall(hook1.original, "ptr", hDlg, "int", nIDDlgItem, "str", "Hello ^_^")
	}
)
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

10 (изменено: serzh82saratov, 2023-01-14 15:20:42)

Re: AHK: Аналог Gui MinSize

Сабклассинг работает через SetWindowLong.
Но разве OnMessage не должен работать для окон другого приложения в случае инжекта?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

11 (изменено: Malcev, 2023-01-14 15:52:42)

Re: AHK: Аналог Gui MinSize

MinHook тут не нужен.

serzh82saratov пишет:

Но разве OnMessage не должен работать для окон другого приложения в случае инжекта?

Не знаю, не пробовал, может и сработает.
А вообще через SetWindowsHookEx ставишь хук на WH_CALLWNDPROC и отлавливаешь WM_GETMINMAXINFO.
Это можно сделать через CreateRemoteThread, как это сделано с инжектом autohotkey.dll либо написать самому простенькую dll и инжектить ее с помощью SetWindowsHookEx как здесь:
https://www.autohotkey.com/boards/viewt … mp;t=94344

12

Re: AHK: Аналог Gui MinSize

Malcev пишет:

MinHook тут не нужен.

Как оказалось он не работает в нужном приложении.

Malcev пишет:

Не знаю, не пробовал, может и сработает

Я пробовал, реагирует только на окна скрипта.

Malcev пишет:

либо написать самому простенькую dll

Такое я не умею.

Malcev пишет:

Это можно сделать через CreateRemoteThread, как это сделано с инжектом autohotkey.dll

А если как тут  https://www.autohotkey.com/boards/viewt … 44#p418590 указать путь к autohotkey.dll, не должно работать?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

13

Re: AHK: Аналог Gui MinSize

Нет.
Вот вызов SetWindowsHookEx через инжект autohotkey.dll.
http://forum.script-coding.com/viewtopi … 91#p128891

serzh82saratov пишет:

Такое я не умею.

Так по моей ссылке показано как поставить хук на WH_CBT.
Посмотри чем отличается WH_CBT от WH_CALLWNDPROC и подправь dll.

14

Re: AHK: Аналог Gui MinSize

Malcev пишет:

подправь dll

Я их и компилировать не умею. И там вроде все действия прописаны в dll, ерунда получается, код мне нужен в анк.

Malcev пишет:

Вот вызов SetWindowsHookEx через инжект autohotkey.dll.

Это видел, но не разобрался. Ладно, не судьба, я думал такое готовое где то есть, казалось что востребовано должно быть, но пока значит не сделали, подожду.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

15

Re: AHK: Аналог Gui MinSize

А ты хочешь каждый раз новые значения минимума/максимума указывать?

16

Re: AHK: Аналог Gui MinSize

Malcev пишет:

А ты хочешь каждый раз новые значения минимума/максимума указывать?

Да. Ну и вообще..

serzh82saratov пишет:

Это видел, но не разобрался

Получилось запустить твой пример, заработало! Заметил что при ExitApp и само приложение закрывается.
Такое бы причесать для общего случая, и в коллекцию.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

17

Re: AHK: Аналог Gui MinSize

serzh82saratov пишет:

Заметил что при ExitApp и само приложение закрывается

ХЗ, теперь пропало.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

18 (изменено: serzh82saratov, 2023-01-14 17:31:33)

Re: AHK: Аналог Gui MinSize

Malcev пишет:

новые значения минимума

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

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui