1

Тема: AHK: Определить оригинальное имя окна класса WindowsForms

Наверное все когда то сталкивались с окнами с классом вида - WindowsForms10.Window.8.app.0.218f99c9.
Так понимаю эти приложения написаны в .NET и.т.п, и в исходном коде имеют человекопонятные имена.
Возможно ли как то определить их оригинальное имя?

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

2

Re: AHK: Определить оригинальное имя окна класса WindowsForms

А смысл?

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

3

Re: AHK: Определить оригинальное имя окна класса WindowsForms

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

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

4

Re: AHK: Определить оригинальное имя окна класса WindowsForms

Нет идей. Думаю, что нельзя.

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

5

Re: AHK: Определить оригинальное имя окна класса WindowsForms

Может из памяти процесса можно получить эту информацию?

6

Re: AHK: Определить оригинальное имя окна класса WindowsForms

Если заранее известно, какое имя класса должно быть, можно поискать hex-редактором каким-либо. Если найдётся — значит можно.

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

7

Re: AHK: Определить оригинальное имя окна класса WindowsForms

У меня нет таких данных.

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

8

Re: AHK: Определить оригинальное имя окна класса WindowsForms

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

9

Re: AHK: Определить оригинальное имя окна класса WindowsForms

Ну это сложно, надо для каждого контрола делать. UIA вроде как определяет тип контрола - UIA_ComboBoxControlTypeId.

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

10

Re: AHK: Определить оригинальное имя окна класса WindowsForms

https://www.autohotkey.com/boards/viewt … 66#p135539
О, вот это иногда работает. Бывает что возвращает всякие - tsbTaskItems, DataGridView, tsMenu, menuStrip1...

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

11

Re: AHK: Определить оригинальное имя окна класса WindowsForms

В общем пришёл к выводу, что могут быть интересны AutomationId и ControlType, но извлечь такие же как в "Inspect" не получается. У меня они или пусты, или отличаются от Inspect.

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

12

Re: AHK: Определить оригинальное имя окна класса WindowsForms

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

13

Re: AHK: Определить оригинальное имя окна класса WindowsForms

Понял отличие от Inspect, у меня из ElementFromHandle, надо ElementFromPoint, тогда значения совпадают.  CurrentAutomationId возвращает строку, а вот CurrentControlType возвращает номер который есть и в Inspect. Как из него получить строку используя стандартную библиотеку не соображу.

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

14

Re: AHK: Определить оригинальное имя окна класса WindowsForms

В этом примере https://www.autohotkey.com/boards/viewt … 66#p135539 есть, используя библиотеку sancarn, так что автоит не понадобится.

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

15

Re: AHK: Определить оригинальное имя окна класса WindowsForms

Он использует враппер от nepter, который в свою очередь давал мне ошибку:
https://www.autohotkey.com/boards/viewt … 72#p233872

16

Re: AHK: Определить оригинальное имя окна класса WindowsForms

Malcev пишет:

Я бы делал через враппер от jethrow

Есть ссылка?

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

17

Re: AHK: Определить оригинальное имя окна класса WindowsForms

Этот?

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

18

Re: AHK: Определить оригинальное имя окна класса WindowsForms

Да.

19

Re: AHK: Определить оригинальное имя окна класса WindowsForms

Я её стандартной и называл, только в ней ссылка на топик nepter.

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

20

Re: AHK: Определить оригинальное имя окна класса WindowsForms

serzh82saratov пишет:

CurrentAutomationId возвращает строку, а вот CurrentControlType возвращает номер который есть и в Inspect. Как из него получить строку используя
стандартную библиотеку не соображу.

Надо просто посмотреть, как получает его враппер от nepter.

; Control Type Identifiers
UIA_ControlType(n){
	static id:={Button:50000,Calendar:50001,CheckBox:50002,ComboBox:50003,Edit:50004,Hyperlink:50005,Image:50006,ListItem:50007,List:50008,Menu:50009,MenuBar:50010,MenuItem:50011,ProgressBar:50012,RadioButton:50013,ScrollBar:50014,Slider:50015,Spinner:50016,StatusBar:50017,Tab:50018,TabItem:50019,Text:50020,ToolBar:50021,ToolTip:50022,Tree:50023,TreeItem:50024,Custom:50025,Group:50026,Thumb:50027,DataGrid:50028,DataItem:50029,Document:50030,SplitButton:50031,Window:50032,Pane:50033,Header:50034,HeaderItem:50035,Table:50036,TitleBar:50037,Separator:50038}
	, name:={50000:"UIA_ButtonControlTypeId",50001:"UIA_CalendarControlTypeId",50002:"UIA_CheckBoxControlTypeId",50003:"UIA_ComboBoxControlTypeId",50004:"UIA_EditControlTypeId",50005:"UIA_HyperlinkControlTypeId",50006:"UIA_ImageControlTypeId",50007:"UIA_ListItemControlTypeId",50008:"UIA_ListControlTypeId",50009:"UIA_MenuControlTypeId",50010:"UIA_MenuBarControlTypeId",50011:"UIA_MenuItemControlTypeId",50012:"UIA_ProgressBarControlTypeId",50013:"UIA_RadioButtonControlTypeId",50014:"UIA_ScrollBarControlTypeId",50015:"UIA_SliderControlTypeId",50016:"UIA_SpinnerControlTypeId",50017:"UIA_StatusBarControlTypeId",50018:"UIA_TabControlTypeId",50019:"UIA_TabItemControlTypeId",50020:"UIA_TextControlTypeId",50021:"UIA_ToolBarControlTypeId",50022:"UIA_ToolTipControlTypeId",50023:"UIA_TreeControlTypeId",50024:"UIA_TreeItemControlTypeId",50025:"UIA_CustomControlTypeId",50026:"UIA_GroupControlTypeId",50027:"UIA_ThumbControlTypeId",50028:"UIA_DataGridControlTypeId",50029:"UIA_DataItemControlTypeId",50030:"UIA_DocumentControlTypeId",50031:"UIA_SplitButtonControlTypeId",50032:"UIA_WindowControlTypeId",50033:"UIA_PaneControlTypeId",50034:"UIA_HeaderControlTypeId",50035:"UIA_HeaderItemControlTypeId",50036:"UIA_TableControlTypeId",50037:"UIA_TitleBarControlTypeId",50038:"UIA_SeparatorControlTypeId"}
	if n is integer
		return name[n]
	else return id[n]
}

21

Re: AHK: Определить оригинальное имя окна класса WindowsForms

Нее, ну так неинтересно.

Добавил в AhkSpy.

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