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