1,101

Re: AHK: Замена "Window Spy"

Не понял, что конкретно не совпадает.
Объясни пошагово, что надо сделать.

1,102

Re: AHK: Замена "Window Spy"

При наведении на Scintilla имеем стили из 0х4003

https://i.imgur.com/5l1driI.png

В моём коде 0

https://i.imgur.com/cPAjz7B.png

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,103

Re: AHK: Замена "Window Spy"

Если навести на Edit в блокноте, то стили будут совпадать.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,104

Re: AHK: Замена "Window Spy"

Там всего то надо.

DllCall("GetClassLong", "Ptr", hWnd, "int", -26)

А тут https://docs.microsoft.com/en-us/window … indowlongw этого почему то нет.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,105

Re: AHK: Замена "Window Spy"

Вроде порядок.


SetFormat, IntegerFast, H  

ClassStyles := {"CS_BYTEALIGNCLIENT":"0x1000", "CS_BYTEALIGNWINDOW":"0x2000", "CS_CLASSDC":"0x0040"
	, "CS_DBLCLKS":"0x0008", "CS_DROPSHADOW":"0x00020000", "CS_GLOBALCLASS":"0x4000", "CS_HREDRAW":"0x0002"
	, "CS_NOCLOSE":"0x0200", "CS_OWNDC":"0x0020", "CS_PARENTDC":"0x0080", "CS_SAVEBITS":"0x0800", "CS_VREDRAW":"0x0001"}
 
1::
	Ret = 
	MouseGetPos, , , hWin, hWnd, 2
	If !hWnd 
		hWnd := hWin
	StyleBits := DllCall("GetClassLong", "Ptr", hWnd, "int", GCL_STYLE := -26)
	For K, V In ClassStyles
		Ret .= StyleBits & V ? K "`n"  : ""
	
	ToolTip % "Style bits: " StyleBits "`n`n" Ret 
	Return
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,106

Re: AHK: Замена "Window Spy"

serzh82saratov пишет:

А тут https://docs.microsoft.com/en-us/window … indowlongw этого почему то нет.

Зато там есть:

Note  If you are retrieving a pointer or a handle, this function has been superseded by the GetWindowLongPtr function. (Pointers and handles are 32 bits on 32-bit Windows and 64 bits on 64-bit Windows.) To write code that is compatible with both 32-bit and 64-bit versions of Windows, use GetWindowLongPtr.

1,107

Re: AHK: Замена "Window Spy"

Так это же вроде не относится к GCL_STYLE?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,108

Re: AHK: Замена "Window Spy"

Не вдавался в подробности к чему это относится, но используя GetWindowLongPtr стили класса в ноутпад++ показываются.

1,109

Re: AHK: Замена "Window Spy"

Malcev пишет:

Не вдавался в подробности к чему это относится

If you are retrieving a pointer or a handle,

Разве не про это? И у меня в ОС64 на анк32 работает.

Malcev пишет:

но используя GetWindowLongPtr

А как ты используешь?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,110

Re: AHK: Замена "Window Spy"

Так же как и ты в 1100 посте.

1,111

Re: AHK: Замена "Window Spy"

Ты в нём только заменяешь GetWindowLong на GetWindowLongPtr, и у тебя корректно работает?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,112

Re: AHK: Замена "Window Spy"

DllCall("GetWindowLong" (A_PtrSize=8 ? "Ptr" : ""), Ptr, hWin, "UInt", GWL_HINSTANCE := -6, "ptr")

1,113

Re: AHK: Замена "Window Spy"

У меня 0 на Scintilla.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,114

Re: AHK: Замена "Window Spy"

Я перепроверил - у меня тоже 0 - ERROR_CLASS_DOES_NOT_EXIST.
Просто не посмотрел, что в 1100 коде ошибка - VarSetCapacity надо при каждом вызове обнулять.
Как я понял классы делятся на глобальные и локальные.
И локальные классы из чужого процесса через GetClassInfo получить нельзя.

1,115

Re: AHK: Замена "Window Spy"

Malcev пишет:

Как я понял классы делятся на глобальные и локальные.
И локальные классы из чужого процесса через GetClassInfo получить нельзя.

Ещё вроде системные классы есть. А судя по тому что надо передавать указатель на приложение, то не сказано что нельзя, а на деле одно и тоже что ноль передавать.

Malcev пишет:

Зато там есть:

Note  If you are retrieving a pointer or a handle, this function has been superseded by the GetWindowLongPtr function. (Pointers and handles are 32 bits on 32-bit Windows and 64 bits on 64-bit Windows.) To write code that is compatible with both 32-bit and 64-bit versions of Windows, use GetWindowLongPtr.

Ты наверное перепутал GetWindowLong с GetClassLong который я использую в 1105.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,116

Re: AHK: Замена "Window Spy"

serzh82saratov пишет:

Ты наверное перепутал GetWindowLong с GetClassLong который я использую в 1105.

Не, на ахк 64 бит ноль покажет:

f11::
	MouseGetPos, , , hWin, hWnd, 2
	If !hWnd 
		hWnd := hWin
	WinGetClass, Class, ahk_id %hWnd%
	msgbox % hInstance := DllCall("GetWindowLong", Ptr, hWin, "UInt", GWL_HINSTANCE := -6)

1,117

Re: AHK: Замена "Window Spy"

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

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,118

Re: AHK: Замена "Window Spy"

У меня стоял ahk 64 бит, я запустил код из 1100 - получил нули, запустил его на 32 бит и из-за того, что varsetcapacity не обнулялся у меня в ноутпад++ вывелся класс.
Из чего я сделал вывод, что не работает на x64.
А GetClassLong можно оставлять как есть, так как хендл с помощью него мы не получаем.

1,119

Re: AHK: Замена "Window Spy"

На счёт стилей кнопок, не пойму BS_TEXT это когда нет ни одного из указанных стилей, судя по данным WinId это не так.

STYLE_(BS_TEXT),				0, -1, (BS_ICON|BS_BITMAP|BS_AUTOCHECKBOX|BS_AUTORADIOBUTTON|BS_CHECKBOX|BS_RADIOBUTTON),//0x00000000
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,120

Re: AHK: Замена "Window Spy"

Я бы полагался на Microsoft Spy++.
А она не показывает.

1,121

Re: AHK: Замена "Window Spy"

Да, он по точнее, но например не показывает TCS_BOTTOM у Таба, ещё другие нестыковки замечал, уже не вспомню.
Вообщем ощущение, что нет какой то однозначности со стилями, надо делать как то по своему.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,122

Re: AHK: Замена "Window Spy"

serzh82saratov пишет:

он по точнее, но например не показывает TCS_BOTTOM у Таба

Сложно что-то сказать без примера.

1,123

Re: AHK: Замена "Window Spy"

Microsoft Spy++, версия 15.00.27520 (выпуск x86)

Не показывает TCS_BOTTOM и TCS_EX_REGISTERDROP.

Gui, Add, Tab3, h64 +E0x00000002 +0x0002, General|View|Appearance|Settings
Gui, Show
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,124

Re: AHK: Замена "Window Spy"

Да, походу у них баг.
Надо проверять TCS_VERTICAL, если есть, то - TCS_RIGHT, если нет, то TCS_BOTTOM.
На счет TCS_EX_REGISTERDROP, ты этот стиль не так назначаешь:

The tab control now supports extended styles. These styles are manipulated using the TCM_GETEXTENDEDSTYLE and TCM_SETEXTENDEDSTYLE messages and should not be confused with extended window styles that are passed to CreateWindowEx.

https://docs.microsoft.com/en-us/window … ded-styles

1,125

Re: AHK: Замена "Window Spy"

Я так понял, что просто нужен TCS_FLATBUTTONS.

TCS_FLATBUTTONS       := 0x0008
TCS_EX_FLATSEPARATORS := 0x00000001
Gui, Add, Tab3, +%TCS_FLATBUTTONS% +E%TCS_EX_FLATSEPARATORS%, 1|2|3|4
Gui, Show 
Return

Но если не указать TCS_EX_FLATSEPARATORS, то Microsoft Spy всё равно пишет что он есть, хотя биты нулевые, визуально стиля тоже нет.
Получается надо проверять TCS_FLATBUTTONS и TCS_EX_FLATSEPARATORS.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,126

Re: AHK: Замена "Window Spy"

TCS_EX_FLATSEPARATORS ставится автоматом при стиле TCS_BUTTONS + TCS_FLATBUTTONS, так как TCS_FLATBUTTONS не может существовать без TCS_BUTTONS.

1,127

Re: AHK: Замена "Window Spy"

TCS_EX_FLATSEPARATORS ставится автоматом при стиле TCS_FLATBUTTONS, но ни тот ни другой не применяются без TCS_BUTTONS.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,128

Re: AHK: Замена "Window Spy"

Я про то что и с TCS_EX_FLATSEPARATORS в Microsoft Spy баг.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,129

Re: AHK: Замена "Window Spy"

Почему баг?
Если ты ставишь только стиль TCS_FLATBUTTONS, то автоматом добавляется TCS_EX_FLATSEPARATORS.
Что и показывает Microsoft Spy.

1,130

Re: AHK: Замена "Window Spy"

Так его визуально нет. И правильно ли то что в ExStyle - нули.
Когда добавляешь TCS_BUTTONS и TCS_EX_FLATSEPARATORS, тогда уже появляется рамка вокруг таба. Или тогда что это за рамка, там ведь написано про "разделители между элементами вкладки".


Я добавил Tab, Edit, Button, Static.
И на таком окне правильно что WS_SYSMENU остаётся в неопределённых стилях, битах.
Стили которые определены я просто минусую из изначальных байтов чтобы проверить остаток, или есть более подходящая битовая операция.

Gui, -Caption
Gui, Show, w333 h333
Return
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,131

Re: AHK: Замена "Window Spy"

serzh82saratov пишет:

Так его визуально нет. И правильно ли то что в ExStyle - нули.

Почему нули?

TCS_FLATBUTTONS       := 0x0008
Gui, Add, Tab3, +%TCS_FLATBUTTONS%  Hwndhwnd, 1|2|3|4
Gui, Show
SendMessage, TCM_GETEXTENDEDSTYLE := 0x1335 , 0, 0,, ahk_id %hwnd%
msgbox % errorlevel
Return
serzh82saratov пишет:

Я добавил Tab, Edit, Button, Static.
И на таком окне правильно что WS_SYSMENU остаётся в неопределённых стилях, битах.

Не понимаю вопроса.

serzh82saratov пишет:

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

Не знаю, я тоже минусовал.

1,132

Re: AHK: Замена "Window Spy"

Malcev пишет:

Не понимаю вопроса.

0x00080000 остаётся красным шрифтом.
0x00080000 это WS_SYSMENU, он присутствует в битах, но не определён в этом окне из за условий.
В остаток нужно выводить что?

GETEXTENDEDSTYLE

Это так у всех контролов с расширенными стилями, или по разному, и что тогда получает ControlGet, , ExStyle.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,133 (изменено: Malcev, 2019-02-08 06:27:57)

Re: AHK: Замена "Window Spy"

serzh82saratov пишет:

0x00080000 это WS_SYSMENU, он присутствует в битах, но не определён в этом окне из за условий.

У меня не остается, а определяется, как WS_SYSMENU.
Из чего можно сделать вывод, что -Caption не убирает этот стиль.

serzh82saratov пишет:

Это так у всех контролов с расширенными стилями, или по разному, и что тогда получает ControlGet, , ExStyle.

ExStyle получает дополнительный стиль дочернего окна, типа ws_ex.
Для дополнительных стилей присущих именно этой группе контролов нужно отправлять сообщения.
Я уже об этом писал:
http://forum.script-coding.com/viewtopi … 79#p130879
В данном типе контрола написано:

The tab control now supports extended styles. These styles are manipulated using the TCM_GETEXTENDEDSTYLE and TCM_SETEXTENDEDSTYLE messages and should not be confused with extended window styles that are passed to CreateWindowEx.

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

1,134

Re: AHK: Замена "Window Spy"

Malcev пишет:

У меня не остается, а определяется, как WS_SYSMENU.

Где, в Microsoft Spy?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,135

Re: AHK: Замена "Window Spy"

Да. С кодом из 1,130 поста.
Microsoft Spy 14 версия.

1,136

Re: AHK: Замена "Window Spy"

А как в окне без заголовка может быть системное меню.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,137

Re: AHK: Замена "Window Spy"

А почему оно быть не может?
При удалении заголовка удаляются же только биты заголовка.

1,138

Re: AHK: Замена "Window Spy"

А почему оно быть не может?

WS_SYSMENU
The window has a window menu on its title bar. The WS_CAPTION style must also be specified.

При удалении заголовка удаляются же только биты заголовка.

Я наблюдаю также удаление самого заголовка.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,139 (изменено: Malcev, 2019-02-08 16:04:30)

Re: AHK: Замена "Window Spy"

Цель какая - валидейтить окна?

Gui, +hwndhwnd
Gui, Show, w333 h333
WinGet, a, Style, ahk_id %hwnd%
Gui, -Caption
WinGet, a1, Style, ahk_id %hwnd%
SetFormat, IntegerFast, hex
msgbox % a-a1
serzh82saratov пишет:

WS_SYSMENU
The window has a window menu on its title bar. The WS_CAPTION style must also be specified.

Здесь нигде не сказано, что если WS_CAPTION не будет указан, то стиль WS_SYSMENU не будет добавлен.

1,140

Re: AHK: Замена "Window Spy"

Не понял, к чему пример, и что значит - валидейтить окна.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,141

Re: AHK: Замена "Window Spy"

Пример к тому, что стиль WS_SYSMENU никуда не девается и остается у окна.
Валидейтить - проверять правильность создания окон.

1,142

Re: AHK: Замена "Window Spy"

А как оно может быть создано неправильно.

Malcev пишет:

WS_SYSMENU никуда не девается

Так там же написано - Стиль WS_CAPTION также должен быть указан.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,143

Re: AHK: Замена "Window Spy"

Ну типа проверять и предупреждать о подобных возможных несоответствиях - WS_SYSMENU есть, а WS_CAPTION нету.

serzh82saratov пишет:

Так там же написано - Стиль WS_CAPTION также должен быть указан.

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

1,144

Re: AHK: Замена "Window Spy"

А зачем его выводить, если его нет.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,145

Re: AHK: Замена "Window Spy"

Если мы его не видим, то это не значит, что его нет.
Или ты считаешь, что биты 0x00080000 при удалении заголовка должны трансформироваться в неопределенный стиль?
А при повторном его добавлении заново превращаться в WS_SYSMENU?

1,146

Re: AHK: Замена "Window Spy"

Malcev пишет:

Или ты считаешь, что биты 0x00080000 при удалении заголовка должны трансформироваться в неопределенный стиль?
А при повторном его добавлении заново превращаться в WS_SYSMENU?

Да, более того кажется правильным чтобы окно само удаляло 0x00080000 при удалении WS_CAPTION. Но, я тебя понял, делаем как везде.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,147

Re: AHK: Замена "Window Spy"

STYLE_(LVS_ICON), LVS_TYPEMASK, -1, LVS_REPORT|LVS_SMALLICON|LVS_LIST, //0x0000
STYLE_(LVS_REPORT), LVS_TYPEMASK, -1, 0, //0x0001
STYLE_(LVS_SMALLICON), LVS_TYPEMASK, -1, 0, //0x0002
STYLE_(LVS_LIST), LVS_TYPEMASK, -1, 0, //0x0003

Не соображу, LVS_TYPEMASK = 0x0003 это сумма LVS_REPORT и LVS_SMALLICON, в первом параметре встречал только 0xf для эксклюзивных стилей, а в 3 указывались те которых не должно быть, не понимаю тут логики. И LVS_TYPEMASK это не стиль, а флаг определяющий другие стили?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,148

Re: AHK: Замена "Window Spy"

LVS_TYPEMASK - это битовая маска с помощью которой определяешь нужные биты.

style := 6
msgbox % style & 0x3

1,149

Re: AHK: Замена "Window Spy"

STYLE_(LVS_ALIGNTOP), 0, -1, 0, //0x0000

А чему равен LVS_ALIGNTOP, он же должен зависеть от LVS_ALIGNMASK.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,150

Re: AHK: Замена "Window Spy"

Так написано же нулю.

1,151

Re: AHK: Замена "Window Spy"

Кто равен нулю, нулевой бит?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,152

Re: AHK: Замена "Window Spy"

Если стили например - 0x0140, то LVS_ALIGNTOP.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,153

Re: AHK: Замена "Window Spy"

https://ru.wikipedia.org/wiki/%D0%91%D0 … 0%BA%D0%B0

1,154

Re: AHK: Замена "Window Spy"

LVS_ALIGNMASK := 0x0C00
SetFormat, IntegerFast, H
Gui, Add, ListView, hWndhListView  Grid, Index|Name
Gui, Show
WinGet, WinStyle, Style, ahk_id %hListView%
MsgBox % WinStyle & LVS_ALIGNMASK "`n" WinStyle

Здесь по твоему должно быть LVS_ALIGNTOP?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,155

Re: AHK: Замена "Window Spy"

Здесь нет, так как LVS_ALIGNTOP может быть только у icon и small icon.
Но если заменить это:

Gui, Add, ListView, hWndhListView  Grid, Index|Name

на это:

Gui, Add, ListView, hWndhListView  Grid +0x800, Index|Name

то тогда я считаю указывать надо LVS_ALIGNLEFT, невзирая на то, что не icon и не small icon, так как биты присутствуют.

1,156

Re: AHK: Замена "Window Spy"

Malcev пишет:

LVS_ALIGNTOP может быть только у icon и small icon

А где такое прочитать?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,157

Re: AHK: Замена "Window Spy"

Как всегда на мсдн:
https://docs.microsoft.com/en-us/window … dow-styles

1,158

Re: AHK: Замена "Window Spy"

Malcev пишет:

Как всегда на мсдн

Читал конечно, только в переводе и невнимательно, как всегда.
Добавил ListView.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,159

Re: AHK: Замена "Window Spy"

Как-то, имхо, запутанно получилось.
Мне нравится как у WinSpy++ это реализовано - название стиля и его значение.
http://www.manhunter.ru/download/24724/ … %201.7.zip
При таком стиле решил "0x800" - делать неопределенным?

Gui, Add, ListView, hWndhListView Grid +0x800, Index|Name

1,160

Re: AHK: Замена "Window Spy"

Malcev пишет:

Как-то, имхо, запутанно получилось.
Мне нравится как у WinSpy++ это реализовано - название стиля и его значение.

Значение не всегда о чём то говорит, как получать стиль если он 0x0000. Так хоть что то понятно что от чего зависит.
По ссылке ошибка.

Malcev пишет:

При таком стиле решил "0x800" - делать неопределенным?

Так должно быть LVS_SMALLICON или LVS_ICON. Иначе получается для LVS_ALIGNTOP проверяем LVS_SMALLICON или LVS_ICON, ведь так как он 0x0000 то будет тогда везде вылазить, а для LVS_ALIGNLEFT не надо, хотя по факту он не включен.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,161

Re: AHK: Замена "Window Spy"

serzh82saratov пишет:

Так хоть что то понятно что от чего зависит

А разве нужно для анализатора окон давать информацию для понимания?
Кому надо может в исходник залезть и посмотреть.

serzh82saratov пишет:

По ссылке ошибка.

Зайди на сайт и загрузи ее еще раз - там куки должны быть прописаны.

serzh82saratov пишет:

Так должно быть LVS_SMALLICON или LVS_ICON. Иначе получается для LVS_ALIGNTOP проверяем LVS_SMALLICON или LVS_ICON, ведь так как он 0x0000 то будет тогда везде вылазить, а для LVS_ALIGNLEFT не надо, хотя по факту он не включен.

Я бы по такому алгоритму и делал (winId так же делает).
Не включен, так не включен - главное, что он известен.

1,162 (изменено: Malcev, 2019-02-09 07:30:31)

Re: AHK: Замена "Window Spy"

1) У тебя ошибка - не может быть окно и WS_OVERLAPPED и WS_POPUP.
2) Зачем разделять стили контролов на 4 окна - неудобно же.
Опять же за пример можно взять WinSpy++ или Microsoft Spy.
3) Хорошо было бы также вставить во вкладку контрола стили родительского окна в раздел Window.
4) Ну и не мешало бы потестировать всё это на различных окнах на возможные баги, сверяясь с winspy++, winId, Microsoft Spy.

1,163

Re: AHK: Замена "Window Spy"

Malcev пишет:

Зайди на сайт и загрузи ее еще раз - там куки должны быть прописаны.

Всё также не получается, хотя я и ничего не понял про куки.

Malcev пишет:

А разве нужно для анализатора окон давать информацию для понимания?

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

Malcev пишет:

Опять же за пример можно взять WinSpy++ или Microsoft Spy.

WinSpy++ у меня нет, Microsoft Spy ни в коем случае, нужны хотя бы значения стилей для использования в АНК.

Malcev пишет:

Зачем разделять стили контролов на 4 окна - неудобно же.

Наоборот удобно, всё по категориям, не надо всматриваться в префиксы стилей, в стилях контрола биты отделены от общих, в расширенных указаны биты которых нет в ControlGet. А чем тебе неудобно.

Malcev пишет:

У тебя ошибка - не может быть окно и WS_OVERLAPPED и WS_POPUP.

В справке вижу только - WS_OVERLAPPED = WS_BORDER && WS_CAPTION, а WS_POPUP = 0x80000000 && !WS_CHILD.

Malcev пишет:

Хорошо было бы также вставить во вкладку контрола стили родительского окна в раздел Window.

А вкладка Window на что, Control и так перегружен данными.

Malcev пишет:

Не включен, так не включен - главное, что он известен.

Надо подумать, а то получается одни не пишутся по тому что их нет по условию, хотя по битам есть, а тут есть биты, но условие не подходит.

Malcev пишет:

Ну и не мешало бы потестировать всё это на различных окнах на возможные баги, сверяясь с winspy++, winId, Microsoft Spy

Не мешало бы конечно, но на это нет времени, на скорую руку смотрю в winId и Microsoft Spy.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,164

Re: AHK: Замена "Window Spy"

serzh82saratov пишет:

Всё также не получается, хотя я и ничего не понял про куки.

При открытии ссылки там же написано:

Вы пытаетесь скачать файл по прямой ссылке, размещенной на стороннем сайте.
Доступ к файлам разрешен только с этого сайта. Недобросовестные люди ("личеры") могут публиковать прямые ссылки на закачку на других сайтах, не указывая ссылок на
основной сайт и тексты статей, а это неуважение к труду автора. Пожалуйста, вернитесь к статье Программы для работы с окнами приложений и повторите загрузку.

serzh82saratov пишет:

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

Ну раз для только для себя, тогда другое дело, потому как меня, например, данный код поставил бы в ступор (подумал бы что баг):

LVS_ICON := LVS_TYPEMASK = LVS_ICON && !(LVS_REPORT | LVS_SMALLICON | LVS_LIST)
LVS_ALIGNLEFT := LVS_ALIGNMASK = 0x0800 && (LVS_SMALLICON || LVS_ICON)
serzh82saratov пишет:

WinSpy++ у меня нет, Microsoft Spy ни в коем случае, нужны хотя бы значения стилей для использования в АНК.

Скачай таки winspy++. Но за пример я имел в виду разбивку по окнам.

serzh82saratov пишет:

Наоборот удобно, всё по категориям, не надо всматриваться в префиксы стилей, в стилях контрола биты отделены от общих, в расширенных указаны биты которых нет в ControlGet. А чем тебе неудобно.

У дочернего окна сумма стилей равна стили дочернего окна+конкретные стили контрола, а у тебя сейчас этой суммы нет и стили идут вразнобой.
Разделить дополнительные стили еще логично, так как они по разному присваиваются.

serzh82saratov пишет:

В справке вижу только - WS_OVERLAPPED = WS_BORDER && WS_CAPTION, а WS_POPUP = 0x80000000 && !WS_CHILD.

http://www.frolov-lib.ru/books/bsp/v11/ch3_2.htm

serzh82saratov пишет:

А вкладка Window на что, Control и так перегружен данными.

Можно всегда спрятать стили и при необходимости открыть.

serzh82saratov пишет:

одни не пишутся по тому что их нет по условию

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

1,165

Re: AHK: Замена "Window Spy"

Malcev пишет:

При открытии ссылки там же написано:

Скачал.

Malcev пишет:

Ну раз для только для себя, тогда другое дело, потому как меня, например, данный код поставил бы в ступор (подумал бы что баг):

Согласен что непривычный вид, но LVS_ALIGNLEFT = 0x0800 и LVS_ICON = 0x0000 вообще ни о чём не говорят, и заставят применить сначала Style & LVS_ALIGNLEFT в своём коде, и если заметишь что это не работает, то прочитать кроме как про сам стиль, ещё и примечания. А так оно как бы сразу указывает направление поиска.

Malcev пишет:

http://www.frolov-lib.ru/books/bsp/v11/ch3_2.htm

Получается однозначно полагаться на справку не следует. Я поправил WS_OVERLAPPED.

Malcev пишет:

Можно всегда спрятать стили и при необходимости открыть.

Всё таки не понимаю зачем там нужны стили окна, если они уже логично располагаются в другой вкладке.

Malcev пишет:

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

На досуге надо будет ещё раз всё перелопатить.
Добавил "Common control styles", так понял они определяются из остатка от стилей контрола.

Malcev пишет:

У дочернего окна сумма стилей равна стили дочернего окна+конкретные стили контрола, а у тебя сейчас этой суммы нет и стили идут вразнобой.

Malcev пишет:

Скачай таки winspy++. Но за пример я имел в виду разбивку по окнам.

Это не понял.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,166 (изменено: serzh82saratov, 2019-02-10 14:27:30)

Re: AHK: Замена "Window Spy"

У дочернего окна сумма стилей равна стили дочернего окна+конкретные стили контрола, а у тебя сейчас этой суммы нет и стили идут вразнобой.

Рядом с кнопкой show styles  разве не то.
Например в ToolbarWindow32 стили контрола могут отличатся, так как получаются из SendMessage, эти стили другие утилиты не пишут. На рабочем столе SysListView32 WinSpy++ и WinID расширенные стили выводят как нулевые, и только WinID выводит остаток, но получается что неизвестно чего, плюс они не определяют большинство из них, WinSpy++ определяет - 5 стилей, WinID - 7. Microsoft Spy++ определяет все 11, но тоже выводит биты расширенных стилей как нули, что же тут правильного. У меня же всегда видно из каких бит получены стили.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,167 (изменено: Malcev, 2019-02-10 14:56:37)

Re: AHK: Замена "Window Spy"

serzh82saratov пишет:

Согласен что непривычный вид, но LVS_ALIGNLEFT = 0x0800 и LVS_ICON = 0x0000 вообще ни о чём не говорят

Можно сделать так:

LVS_ICON := 0x0000   (LVS_TYPEMASK = LVS_ICON && !(LVS_REPORT | LVS_SMALLICON | LVS_LIST))
LVS_ALIGNLEFT := 0x0800  ([LVS_ALIGNMASK = 0x0800 && (LVS_SMALLICON || LVS_ICON))
serzh82saratov пишет:

Получается однозначно полагаться на справку не следует

Стоит полагаться на справку+на другие утилиты+на логику, чтобы исправить баги и неудобства в других утилитах.

serzh82saratov пишет:

Всё таки не понимаю зачем там нужны стили окна, если они уже логично располагаются в другой вкладке.

Можно и не вставлять, а можно вставить и посмотреть как удобней будет.

У дочернего окна сумма стилей равна стили дочернего окна+конкретные стили контрола, а у тебя сейчас этой суммы нет и стили идут вразнобой.

Берем контрол блокнота:

f11::
ControlGet, Style, Style ,, Edit1, A
msgbox % clipboard := Style

Получаем 0x50300104.
У тебя же:

Styles - Edit: 0x0104 ) 
ES_MULTILINE := 0x0004
ES_NOHIDESEL := 0x0100
ES_LEFT := !(ES_CENTER | ES_RIGHT)
 ( Styles ) 
WS_HSCROLL := 0x00100000
WS_VISIBLE := 0x10000000
WS_VSCROLL := 0x00200000
WS_CHILD := WS_CHILDWINDOW := 0x40000000

Cуммы стилей контролов нету, что вносит путанницу.
Почему нельзя сделать, например как в WinSpy++ вначале показать стили WS_, потом ES_ в одной вкладке с общей суммой.
Типа:

Styles - 0x50300104 )
WS_HSCROLL := 0x00100000
WS_VISIBLE := 0x10000000
WS_VSCROLL := 0x00200000
WS_CHILD := WS_CHILDWINDOW := 0x40000000[ 
ES_MULTILINE := 0x0004
ES_NOHIDESEL := 0x0100
ES_LEFT := !(ES_CENTER | ES_RIGHT)

На счет дополнительных стилей разделение логично, так как они определяются по-разному.
И еще надо как-то логично их сортировать, в алфавитном порядке либо по значениям стилей.
В ExStyles тоже стоило бы указывать значения.
Вместо:

ExStyles ) 
WS_EX_LEFT := !(WS_EX_RIGHT)
WS_EX_RIGHTSCROLLBAR := !(WS_EX_LEFTSCROLLBAR)
WS_EX_LTRREADING := !(WS_EX_RTLREADING)

так:

ExStyles 0x0000) 
WS_EX_LEFT := 0x0000   !(WS_EX_RIGHT)
WS_EX_RIGHTSCROLLBAR := 0x0000   !(WS_EX_LEFTSCROLLBAR)
WS_EX_LTRREADING := 0x0000   !(WS_EX_RTLREADING)

1,168

Re: AHK: Замена "Window Spy"

Баг с ToolbarWindow32.

ExStyles - ToolbarWindow32: 0x2A0 ) 
TBSTYLE_EX_DOUBLEBUFFER := 0x80
0x2A0

1,169

Re: AHK: Замена "Window Spy"

Malcev пишет:

Можно и не вставлять, а можно вставить и посмотреть как удобней будет.

Всё таки я не понимаю зачем это вообще может быть нужно.

Malcev пишет:

Можно сделать так:

Согласен.

Malcev пишет:

И еще надо как-то логично их сортировать, в алфавитном порядке либо по значениям стилей.

Гемморойно будет в той логике которую я уже наваял, подумаю.

Malcev пишет:

Cуммы стилей контролов нету, что вносит путанницу.

Я за отделение оконных стилей от специфичных. В Styles и ExStyles биты добавлю.

Сейчас уже кое как работает, время появится - переделаю.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,170

Re: AHK: Замена "Window Spy"

Malcev пишет:

Баг с ToolbarWindow32.

Поправил.
Странно что в TB_GETEXTENDEDSTYLE 2 байта, хотя в его стилях максимум 1.
Я ещё хотел добавить

; Button styles ========================================================================================================
Global BTNS_BUTTON        := 0x00 ; TBSTYLE_BUTTON
Global BTNS_SEP           := 0x01 ; TBSTYLE_SEP
Global BTNS_CHECK         := 0x02 ; TBSTYLE_CHECK
Global BTNS_GROUP         := 0x04 ; TBSTYLE_GROUP
Global BTNS_CHECKGROUP    := 0x06 ; TBSTYLE_CHECKGROUP  // (TBSTYLE_GROUP | TBSTYLE_CHECK)
Global BTNS_DROPDOWN      := 0x08 ; TBSTYLE_DROPDOWN
Global BTNS_AUTOSIZE      := 0x10 ; TBSTYLE_AUTOSIZE    // automatically calculate the cx of the button
Global BTNS_NOPREFIX      := 0x20 ; TBSTYLE_NOPREFIX    // this button should not have accel prefix
Global BTNS_SHOWTEXT      := 0x40 ; // ignored unless TBSTYLE_EX_MIXEDBUTTONS is set
Global BTNS_WHOLEDROPDOWN := 0x80 ; // draw drop-down arrow, but without split arrow section

Но не одолел их получение, наработки в комментарии GetStyle_ToolbarWindow.

/*
		oBTNS := {"BTNS_BUTTON":"0x00","BTNS_SEP":"0x01","BTNS_CHECK":"0x02","BTNS_GROUP":"0x04","BTNS_CHECKGROUP":"0x06","BTNS_DROPDOWN":"0x08"
		,"BTNS_AUTOSIZE":"0x10","BTNS_NOPREFIX":"0x20","BTNS_SHOWTEXT":"0x40","BTNS_WHOLEDROPDOWN":"0x80"}

		VarSetCapacity(TBBUTTON, A_PtrSize == 8 ? 32 : 20, 0)

		iBitmap := NumGet(TBBUTTON, 0, "Int")
		idCommand := NumGet(TBBUTTON, 4, "Int")
		fsState := NumGet(TBBUTTON, 8, "UChar")
		fsStyle := NumGet(TBBUTTON, 9, "UChar")
		bReserved := NumGet(TBBUTTON, 10, "UChar")
		;bReserved := NumGet(TBBUTTON, 10, "UChar")
		dwData := NumGet(TBBUTTON, A_PtrSize == 8 ? 16 : 12, "UPtr")
		iString := NumGet(TBBUTTON, A_PtrSize == 8 ? 24 : 16, "Ptr")
*/
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,171

Re: AHK: Замена "Window Spy"

А через TB_GETBUTTON пробовал?
Неудобно то, что комментарии к стилю копируются вместе со значением стиля.
Вот в такой конструкции отдельно скопировать 0x00C00000 получится только если обвести это значение.

WS_CAPTION := 0x00C00000 = (WS_BORDER | WS_DLGFRAME)

1,172

Re: AHK: Замена "Window Spy"

Malcev пишет:

А через TB_GETBUTTON пробовал?

C OpenProcess?

Malcev пишет:

отдельно скопировать 0x00C00000 получится только если

Да, мне это тоже не нравится.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,173

Re: AHK: Замена "Window Spy"

serzh82saratov пишет:

C OpenProcess?

Ну, да.
teadrinker, помню, выкладывал нечто подобное.

1,174

Re: AHK: Замена "Window Spy"

Да это есть, давно использую его DeleteDummyIcons.
Я поверхностно смотрел, думал это общие стили для всех кнопок, или это стили для каждой кнопки отдельно, не знаю стоит ли тогда с ними вообще заморачиваться.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,175

Re: AHK: Замена "Window Spy"

Судя по информации об этом сообщении, то по каждой кнопке отдельно.

1,176

Re: AHK: Замена "Window Spy"

Ни к чему оно значит.

Поменял местами "show styles" и "hide styles".

Для примера, как буду потом выводить примечания, сделал для WS_EX_LEFT, WS_EX_RIGHTSCROLLBAR, WS_EX_LTRREADING.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,177

Re: AHK: Замена "Window Spy"

serzh82saratov пишет:

Я за отделение оконных стилей от специфичных

Ну мы их и отделяем, то что WS - оконные.
А сейчас чехарда из стилей получается - непонятно, что к чему относится.
Кстати на ахк уже есть подобный функционал, правда не без ошибок.
Вот там точь-в-точь как я предлагал сделать:
https://sourceforge.net/projects/winspy … t/download

1,178 (изменено: Malcev, 2019-02-20 14:36:35)

Re: AHK: Замена "Window Spy"

serzh82saratov пишет:

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

Неудобно, что по двойному клику нету привязки заголовка к верху окна - в зависимости от наполнености заголовок прыгает.

1,179 (изменено: serzh82saratov, 2019-02-20 15:08:36)

Re: AHK: Замена "Window Spy"

Согласен, тоже сразу не понравилось, но простого решения не нашёл, подумаю ещё раз.
На стили пока времени нет, и до конца не решил как нагляднее. Оконные в 2 старших байтах, специфичные в младших, почему бы их не разделить, а "так у всех" так себе аргумент. И у тулбара обычные стили получаются из сообщения, соответственно в его случае младшие байты вообще отбрасываются.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,180

Re: AHK: Замена "Window Spy"

serzh82saratov пишет:

а "так у всех" так себе аргумент

Не согласен.
У пользователей, пользующихся такого рода утилитами сформировывается привычка, в каком порядке, что показывается.
Для меня сейчас путаница в том, что:
На рабочем столе получаю такую информацию:

Style:  0x56003A40  ▪  ExStyle:  0x00000000
Styles - SysListView32: 0x3A40 )
LVS_EDITLABELS := 0x0200
LVS_NOSCROLL := 0x2000
LVS_OWNERDATA := 0x1000
LVS_SHAREIMAGELISTS := 0x0040
LVS_ICON := 0x0000    ▪    !(LVS_REPORT | LVS_SMALLICON | LVS_LIST)
LVS_ALIGNLEFT := 0x0800    ▪    (LVS_ALIGNMASK = 0x0800)
( ExStyles - SysListView32: 0x15894C30 )
LVS_EX_AUTOAUTOARRANGE := 0x01000000
LVS_EX_AUTOSIZECOLUMNS := 0x10000000
LVS_EX_DOUBLEBUFFER := 0x00010000
LVS_EX_FULLROWSELECT := 0x00000020
LVS_EX_HEADERDRAGDROP := 0x00000010
LVS_EX_INFOTIP := 0x00000400
LVS_EX_LABELTIP := 0x00004000
LVS_EX_SNAPTOGRID := 0x00080000
LVS_EX_TRANSPARENTSHADOWTEXT := 0x00800000
LVS_EX_UNDERLINEHOT := 0x00000800
0x04000000
( Styles )
WS_CLIPCHILDREN := 0x02000000
WS_CLIPSIBLINGS := 0x04000000
WS_VISIBLE := 0x10000000
WS_CHILD := WS_CHILDWINDOW := 0x40000000
( ExStyles )
WS_EX_LEFT := 0x00000000    ▪    !(WS_EX_RIGHT)
WS_EX_RIGHTSCROLLBAR := 0x00000000    ▪    !(WS_EX_LEFTSCROLLBAR)
WS_EX_LTRREADING := 0x00000000    ▪    !(WS_EX_RTLREADING)
( Class Styles: 0x00004008 )
CS_DBLCLKS := 0x0008
CS_GLOBALCLASS := 0x4000

Из этого непонятно, что такое Style:  0x56003A40 и из чего он состоит.

1,181

Re: AHK: Замена "Window Spy"

сформировывается привычка

Ну мне например не нравится всматриватся в префиксы.
Или к примеру остаток наблюдал типа - 0x00010000, и мне надо разглядывать сколько нулей до или после единицы, чтобы понять - это оконные стили неопределенны, или специфичные.

Для меня сейчас путаница

Сейчас, да, я и не спорю, оно же брошено недоделанное. Думаю что в таком виде будет:

Style:  0x56003A40  ▪  ExStyle:  0x00000000
( Styles: 0x56000000 )
( Styles - SysListView32: 0x3A40 )
( ExStyles: 0x00000000 )
( ExStyles - SysListView32: 0x15894C30 )
( Class Styles: 0x00004008 )

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,182

Re: AHK: Замена "Window Spy"

Во вкладке Button если вставить Vk code, то результат будет отличаться от:
https://docs.microsoft.com/en-us/window … -key-codes

1,183

Re: AHK: Замена "Window Spy"

Не понял...

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,184

Re: AHK: Замена "Window Spy"

vk20 = Space

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,185

Re: AHK: Замена "Window Spy"

Не переводятся Undefined, Reserved, IME Kana mode и т.д.

1,186

Re: AHK: Замена "Window Spy"

Так их нет в GetKeyName. И зачем они нужны?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,187

Re: AHK: Замена "Window Spy"

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

1,188

Re: AHK: Замена "Window Spy"

Подумаю, можешь кстати помочь составить массив 15:"VK_KANA",.
А зачем такие коды могут использоваться?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,189 (изменено: Malcev, 2019-03-26 04:46:20)

Re: AHK: Замена "Window Spy"

Именно эти, как я понимаю, для переключения режимов посылки иероглифов с европейской клавиатуры.
Дальше, наверное, лучше тебе самому подправить.

SetFormat, IntegerFast, dec
WebRequest := ComObjCreate("WinHttp.WinHttpRequest.5.1")
WebRequest.Open("get", "https://docs.microsoft.com/en-us/windows/desktop/inputdev/virtual-key-codes")
WebRequest.Send()
ResponseText := RegexReplace(WebRequest.ResponseText, "s)^.+?<tbody>(.+?)</tbody>.+$", "$1")
match := "", Pos := 1
While Pos := regexmatch(ResponseText, "s)</dt> <dt>(.+?)</dt>.+?<td style="""">(.+?)<br>", match, pos+StrLen(match))
{
   arr := StrSplit(match1, "-")
   if (arr[2] = "")
      arr[2] := arr[1]
   else
      arr[2] := "0x" arr[2]
   match1 := arr[1]+0
   loop
   {
      fin .= match1 ":""" match2 """`r`n"
      if (match1 = arr[2])
         break
      match1++
   }
}
msgbox % clipboard := fin

1,190

Re: AHK: Замена "Window Spy"

Malcev пишет:

для переключения режимов посылки иероглифов с европейской клавиатуры.

То есть не для переключения раскладки?

Malcev пишет:

Дальше, наверное, лучше тебе самому подправить.

Я взял из Constantine.ahk, попроще в массив перевести, и OEM specific расписаны.
Например "0x9E is Unassigned" - Почему не WheelDown?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,191 (изменено: Malcev, 2019-03-27 07:02:17)

Re: AHK: Замена "Window Spy"

serzh82saratov пишет:

То есть не для переключения раскладки?

https://habr.com/ru/post/183858/
Кстати тут еще дополненные кнопки:
http://www.kbdedit.com/manual/low_level_vk_list.html

VK_ABNT_C1	0xC1	Abnt C1
VK_ABNT_C2	0xC2	Abnt C2

Может еще какие есть.

1,192

Re: AHK: Замена "Window Spy"

Добавил до кучи обратную конвертацию, "symbolic names" в значение.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,193

Re: AHK: Замена "Window Spy"

Странно работает.
При вписывании "Q" либо "q" получаем "vk51sc10" - OK.
При вписывании "1" - "vk31sc2" - OK, а при вписывании "!" почему-то "1".
И при вписывании пробела почему-то "Space".

1,194

Re: AHK: Замена "Window Spy"

Так и работает GetKeyName в AutoHotkey.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,195 (изменено: Malcev, 2019-06-19 04:36:04)

Re: AHK: Замена "Window Spy"

serzh82saratov пишет:

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

Malcev пишет:

Неудобно, что по двойному клику нету привязки заголовка к верху окна - в зависимости от наполнености заголовок прыгает.

serzh82saratov пишет:

Согласен, тоже сразу не понравилось, но простого решения не нашёл, подумаю ещё раз.

Удалось что-то придумать?
И лично меня розовый фон UIA Interface отвлекает - может это сделать опционально?

1,196

Re: AHK: Замена "Window Spy"

И иногда AhkSpy вылетает с ошибкой 0x80070578 - INVALID_WINDOW_HANDLE в Uia ElementFromPoint.

1,197

Re: AHK: Замена "Window Spy"

Розовый фон только когда HWND или PID отличаются от MouseGetPos. Опционально сделано отключение UIA Interface, из за не понятных ошибок в том числе.
На счёт заголовков больше не думал, не вижу простых решений, усложнять из за этого не хочется, нагрузка и так высокая.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

1,198

Re: AHK: Замена "Window Spy"

serzh82saratov пишет:

Розовый фон только когда HWND или PID отличаются от MouseGetPos.

Предлагаю цвет сделать опционально, так как когда работаешь с IE, то постоянно прыгающий розовый прямоугольник отвлекает.
Чтобы не выводить ошибки  UIA Interface можно закомментировать эту строку:

throw Exception(UIA_Hex(hr) " - " err[hr], -2, i2 "  (" i1 ")")

1,199

Re: AHK: Замена "Window Spy"

Сделал.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui