1 (изменено: serzh82saratov, 2018-09-10 00:12:02)

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

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


https://raw.githubusercontent.com/serzh82saratov/AhkSpy/master/16082_900.png


Ссылка на пост в коллекции

Почему интерефейс на HTML:
http://forum.script-coding.com/viewtopi … 70#p121970
http://forum.script-coding.com/viewtopi … 46#p121546

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

2 (изменено: Drugoy, 2013-05-19 22:03:12)

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

-

3

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

v1.4 - Добавил координаты мыши и контрола относительно клиентской зоны

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

4

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

Срочно, срочно в Коллекцию — шоб не потерялось...

5 (изменено: serzh82saratov, 2013-05-21 15:57:55)

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

v1.5 - исправлено: координаты контрола относительно клиентской зоны правильно определяются и в неактивном окне.

DD пишет:

...в Коллекцию...

Думаю что может быть сыроватым. Да и прав у меня всё равно нет.

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

6

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

v1.51 - исправлено: не всегда верно определялся Class NN контрола.

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

7

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

По-моему, идея очень хорошая. Стоит поместить в Коллекцию и присвоить статус Разработчика.
Но хочется, чтобы было доведено до ума. Первое, что бросается в глаза - во вкладке "кнопки" не показывается нажатия ЛКМ и ПКМ. Ещё вместо редактируемого текстового поля (Edit) лучше использовать простой текст (Text). Хотелось бы кнопку [?], при нажатии на которую появится описание программы.

8

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

Статус давно стоит присвоить.

У меня цветовое поле между кнопками "Мышь" и "Кнопки" куда-то уехало и видет только верхний левый квадрант его.

Жизнь стоит того чтобы не быть сволочью. (с) Разные Люди

9

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

ypppu пишет:

Первое, что бросается в глаза - во вкладке "кнопки" не показывается нажатия ЛКМ и ПКМ.

Потому что надо чем-то выделять и копировать текст.

ypppu пишет:

Ещё вместо редактируемого текстового поля (Edit) лучше использовать простой текст (Text).

Опять-же потому что надо как-то выделять и копировать текст, для чего собственно и нужен скрипт. И чем лучше текст в данном случае?

ypppu пишет:

Хотелось бы кнопку [?], при нажатии на которую появится описание программы.

А что там писать? И так всё подписано. Собственно и в оригинале её нет.

Mikki пишет:

У меня цветовое поле между кнопками "Мышь" и "Кнопки" куда-то уехало и видет только верхний левый квадрант его.

У меня в винде всегда стоит шрифт 125%. Потому иногда вид гуи моих скриптов может быть кривым. Но этот я проверил на 100% шрифте и сделал определение в виде "SysGet, SM_CYMINSPACING, 48" для установки нужного размера шрифта. Mikki выложите пожалуйста скриншот, желательно всего окна.
Кто использует отпишитесь у кого как.
В 18 строке кода

Gui, Add, Text, vColorText cWhite x+0 yp-2 h%SM_CYMINSPACING% w%SM_CYMINSPACING%, % Chr(0x2588) 

создаётся текст с одним символом, его цвет (текста) как раз и изменяется. Знаю что видимо не лучшее решение, т.к. есть зависимость и от размера шрифта. Вообщем какие идеи по отображению цвета в квадрате заданного размера и позиции.

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

10

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

Mikki пишет:

У меня цветовое поле между кнопками "Мышь" и "Кнопки" куда-то уехало и видет только верхний левый квадрант его.

Ещё раз проверил на 100% и 125% размере системного шрифта одинаково ровно как и на моих скриншотах  в топике.

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

11

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

serzh82saratov пишет:
ypppu пишет:

Первое, что бросается в глаза - во вкладке "кнопки" не показывается нажатия ЛКМ и ПКМ.

Потому что надо чем-то выделять и копировать текст.

Вообще согласен, проще сделать небольшое исключение, чем усложнять.


serzh82saratov пишет:
ypppu пишет:

Ещё вместо редактируемого текстового поля (Edit) лучше использовать простой текст (Text).

Опять-же потому что надо как-то выделять и копировать текст, для чего собственно и нужен скрипт. И чем лучше текст в данном случае?

Чтобы исключить возможность ввода (актуально для вкладок "Окно" и "Мышь").


serzh82saratov пишет:
ypppu пишет:

Хотелось бы кнопку [?], при нажатии на которую появится описание программы.

А что там писать? И так всё подписано. Собственно и в оригинале её нет.

Чтобы объяснить, как пользоваться программой. Там же дать понять, почему ЛКМ и ПКМ не показываются. Переместить туда из заголовка окна подсказку про Shift+Tab.
Туда же:


 ; AhkSpy v1.51
 ; Автор - serzh82saratov
 ; http://forum.script-coding.com/viewtopic.php?pid=72244#p72244

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

Даю скрин для Win XP.

12 (изменено: serzh82saratov, 2013-05-22 00:58:49)

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

serzh82saratov пишет:

И чем лучше текст в данном случае?

ypppu пишет:

Чтобы исключить возможность ввода (актуально для вкладок "Окно" и "Мышь").

Не пойму чем актуально... Возможность ввода можно ограничить просто параметром ReadOnly, да и нехорошо это. Сейчас я дописываю в скрипте что надо и копирую, часто 2 или 3 параметра совмещаю, ReadOnly меня в Window Spy бесил. Например один параметр сверху другой снизу, сейчас обвёл между ними пробел нажал и копируй. А не большими кусками или по одному в блокнот. Да и как из текста потом выделять для копирования нужные куски неясно.

Чтобы объяснить, как пользоваться программой.

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

AhkSpy v1.54

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

Поправил на инглиш.

Даю скрин для Win XP.

Вроде не плохо, но на Win-7 шрифт получше выглядит.
Цветной квадратик уехал далеко.
http://xbmc.ru/forum/images/smilies/facepalm.gif что я мудрил с "текстом", когда есть просто "Progress", сейчас должно быть ровно. 
ЛКМ и ПКМ - приписал комментарием снизу.
В режим Window добавил определение размера клиентской зоны окна.

AhkSpy v1.55
Несколько исправлений.

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

13

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

Вы удалили файл из первого поста. Доделываете или забыли?

Жизнь стоит того чтобы не быть сволочью. (с) Разные Люди

14

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

Добавлял v1.55

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

15 (изменено: Malcev, 2013-05-22 04:29:44)

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

1) Непривычно (неудобно) копировать просто нажатием правой кнопки мыши, я бы это вставил опционально.
А по-дефалту сделал бы как в Window Spy
2) При активированном окне Spy нельзя активировать другое окно с помощью правой кнопки мыши, чтобы сразу вставало на Paste.
3) Смущает квадратик который изменяет свой цвет при активном окне Spy.
Я бы его оставлял последним цветом до активации.

16

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

1) Копирование правой клавишей - норм.

Жизнь стоит того чтобы не быть сволочью. (с) Разные Люди

17

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

2) При активированном окне Spy нельзя активировать другое окно с помощью правой кнопки мыши, чтобы сразу вставало на Paste.

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

3) Смущает квадратик который изменяет свой цвет при активном окне Spy.
Я бы его оставлял последним цветом до активации.

Такого быть не может. При активном окне программы, поступление данных прекращается.
Учтите что при нажатии на кнопки "Window" и "Mouse && Control" окно Spy автоматичеки деактивируется, нажимается альт + эскейп.

1) Непривычно (неудобно) копировать просто нажатием правой кнопки мыши, я бы это вставил опционально.

Скрипт сделан для моих личных потребностей, и написан в замену Window Spy в котором меня неустраивало несколько мелочей но в его код я не мог залезть, теперь у всех есть такая возможность. Код выложен на форум для того чтобы другие пользовались и тестировали на предмет функционального несовершенства, а не с целью пиара, и "давайте что-нибудь ещё напишем в меню, или нарисуем цветок на окне весной, а снежинку зимой". Дописывать в него остальные "опциональные опции" не вижу смысла. Для новичков на первое время сойдёт, а вы можете просто удалить строку "RButton::".
Код написан максимально просто для того чтобы любой мог сразу понять что к чему и внести свои изменения на свой вкус. А если в итоге обвесить его пунктами меню с кучей опций на любой вкус которые мне не нужны, я потом сам в коде неразберусь
Цель должна оправдывать средства, в нынешнем виде думаю всё гармонично.
Делать из простого скрипта тяжелый код несущий исключительно "рюшечный" характер, не вижу смысла. "Непривычно" - не аргумент, "неудобно" - дело вкуса.
Malcev
Если хотите сделайте свою версию, ссылку с вашей подписью на пост с прикреплённым скриптом я помещу в топик.

Mikki
Как сейчас обстоит дело с индикатором цвета? Я так понял у вас ХР?

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

18

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

"Непривычно" - не аргумент

Для пользователя - это аргумент. Не встречал ни одной программы у которой правая кнопка мыши отвечала бы по-дефалту за копирование.

Учтите что при нажатии на кнопки "Window" и "Mouse && Control" окно Spy автоматичеки деактивируется, нажимается альт + эскейп.

Вот я бы при нажатии  "Mouse && Control" при нахождении курсора в пределах Spy цвет бы не менял.

19

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

Для пользователя - это аргумент.

Я же вам написал, пользователь это я. Аргументация создания темы приведена постом выше. Скрипт AhkSpy.ahk выложен в ознакомительных целях, а не "посмотрите какая у меня крутая программа".

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

Кнопка на мыши, использовать удобно + обрезаются пробельные символы по бокам, чтоб немучатся при выделении, также актуально при выделении двойным кликом. Меню тут нетребуется, а если требуется то вызывается в отсутствии выделенного текста. В режиме "Button" альтернативы ей нет. А вызывать меню и выбирать пункт лично мне неудобно.
Что вам мешает удалить строку "RButton::" непонятно. И зачем в принципе вам нужна правая кнопка в этой программе не ясно. Блок с хоткеем начинается на 28 строке кода.

Вот я бы при нажатии  "Mouse && Control" при нахождении курсора в пределах Spy цвет бы не менял.

Чтобы любоватся цветом пикселя у края окна Spy???

Для "паузы" есть Shift+Tab.

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

20

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

Malcev пишет:

Вот я бы при нажатии  "Mouse && Control" при нахождении курсора в пределах Spy цвет бы не менял.

Постиг смысл сией задумки. Проверяйте.

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

21

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

Постигли верно.
Спасибо!

22

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

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

23

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

serzh82saratov, С индикатором цвета сейчас обстоит дело отлично.

Жизнь стоит того чтобы не быть сволочью. (с) Разные Люди

24 (изменено: serzh82saratov, 2013-05-23 13:28:05)

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

v1.61
v1.62
режим мышки:
+ Над окном AhkSpy определяются теперь, только координаты мыши.
+ Сделал определение специфичной инфо. в зависимости от типа контрола.

В данный момент поддерживаются некоторые параметры таких контролов:
SysListView32, ListBox, ComboBox, Edit, msctls_trackbar32, Internet Explorer_Server.
Думаю есть почва для обсуждения и дополнения этого направления.

ypppu
Спасибо на добром слове.
Mikki
Хорошо.

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

25

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

serzh82saratov, твой статус изменён (см. Правила, раздел 6).
Поздравляю! Наполняй Коллекцию скриптами и идеями.

26

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

ypppu
Спасибо за новый статус!

Добавил сабж в коллекцию.
Надеюсь что смогу быть ещё чем-то полезен.

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

27 (изменено: Irbis, 2013-05-27 20:04:23)

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

Бегло ознакомился со скриптом, возник пока что 1 вопрос и 1 предложение:

Во-первых, странно отображает текст некоторых контролов в Notepad++
http://savepic.net/3762625m.png
Полагаю, эти иероглифы соответствуют тексту редактируемого скрипта, только в непонятной кодировке.
AhkSpy сообщает, по поводу этого контрола, что Class NN: Scintilla1
Также информация в client area size, что означают эти многоциферные выражентия, так и не понял.

Во-вторых, конструктивное предложение по поводу длиннющей "портянки" хоткеев с 515 по 830 строки
(Идея взята отсюда) :
В секцию автовыполнения, с 20й строки добавить:

XKeys = 
(Join|
vkBA|vkBB|vkBC|vkBD|vkBE|vkBF|vkC0|vkDB|vkDC|vkDD|vkDE|vk41|vk42|vk43|vk44|vk45|vk46
vk47|vk48|vk49|vk4A|vk4B|vk4C|vk4D|vk4E|vk4F|vk50|vk51|vk52|vk53|vk54|vk55|vk56|vk57
vk58|vk59|vk5A|vkC1|vkC2|vkDF|vkE1|vkE2|vkE6|vkE3|vkF0|vkF2|vkF3|vkF5|vkF6|vkF7|vkF8
vkF9|vkFE|vk2B|vk6C|0|1|2|3|4|5|6|7|8|9
F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|F13|F14|F15|F16|F17|F18|F19|F20|F21|F22|F23|F24
AppsKey|Backspace|CapsLock|Del|Down|End|Enter|Esc|Home|Left|Pause|PgDn|PgUp|PrintScreen
Right|ScrollLock|Space|Tab|Up|Break|CtrlBreak|Help|Insert|Sleep|Numlock|Numpad0|Numpad1
Numpad2|Numpad3|Numpad4|Numpad5|Numpad6|Numpad7|Numpad8|Numpad9|NumpadAdd|NumpadClear
NumpadDel|NumpadDiv|NumpadDot|NumpadDown|NumpadEnd|NumpadEnter|NumpadHome|NumpadIns|NumpadLeft
NumpadMult|NumpadPgDn|NumpadPgUp|NumpadRight|NumpadSub|NumpadUp|Browser_Back|Browser_Favorites
Browser_Forward|Browser_Home|Browser_Refresh|Browser_Search|Browser_Stop|Launch_App1|Launch_App2
Launch_Mail|Launch_Media|Media_Next|Media_Play_Pause|Media_Prev|Media_Stop|Volume_Down
Volume_Mute|Volume_Up|MButton|WheelUp|WheelDown|WheelLeft|WheelRight|XButton1|XButton2
)
Loop Parse, XKeys, |
   HotKey %A_LoopField%, ShowKey
Loop, % 4*32
   Hotkey % ((A_Index-1)//32)+1 . "Joy" . Mod(A_Index-1,32)+1, ShowKey

А вместо 515-830 строк - подпрограмму ShowKey:

ShowKey:
    if InStr(A_ThisHotkey, "vk")
    {
       HF_Hotkey := HF_VkCode := A_ThisHotkey
       HF_ThisKey := HF_KeyName := GetKeyName(A_ThisHotkey)
       SetFormat, IntegerFast, H
       HF_SCCode := "sc" SubStr(GetKeySC(HF_VkCode),3)
    }
    Else
    {
       SetFormat, IntegerFast, H
       HF_VkCode := "vk" SubStr(GetKeyVK(A_ThisHotkey),3)
       HF_SCCode := "sc" SubStr(GetKeySC(A_ThisHotkey),3), (HF_SCCode = "sc0") ? HF_SCCode := ""
       HF_Hotkey := HF_ThisKey := HF_KeyName := A_ThisHotkey
    }
    if InStr(A_ThisHotkey, "Joy")
    {
       HF_VkCode := HF_SCCode := ""
       HF_Hotkey := HF_ThisKey := HF_KeyName := A_ThisHotkey
    }
    Gosub, HF_Write
Return

Итого получилось: AhkSpy.ahk

+ Off

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

28 (изменено: serzh82saratov, 2013-05-28 16:17:33)

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

Irbis пишет:

Полагаю, эти иероглифы соответствуют тексту редактируемого скрипта, только в непонятной кодировке.

Само собой. ControlGetText неможет правильно извлекать инфо из Scintilla. Потому я и написал что давайте развивать это направление. Если у вас есть код для извлечения инфо из такого контрола, то велкам. Хотя большого смысла в данном случае не вижу. Текст можно и так увидеть и скопировать.

Irbis пишет:

Также информация в client area size, что означают эти многоциферные выражентия, так и не понял.

Что именно тут не ясно?:

Client area size: width 1680 height 975     top 36 left 9 bottom 9 right 9
Irbis пишет:

конструктивное предложение по поводу длиннющей "портянки" хоткеев

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

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

Экстенсивности тут нет, так как увеличение количества строк ведёт к улучшению быстродействия. Индусского вы ничего не выделили, т.к. невыявили нарушения синтаксиса или явно излишние действия. Если сокращение количества строк в ущерб быстродействию по вашему правильно, то увольте.
В коде есть ссылка на библиотеку http://forum.script-coding.com/viewtopi … 765#p69765. По ссылке к библиотеке вы можете увидеть также её вариант на основе SetWindowsHookEx. Он короче (так как в нём не указываются кнопки клавиатуры ввиде хоткеев) и определяет все кнопки клавиатуры, но в данном случае не использован из-за сильного притормаживания в данном контексте. 
Если у вас есть предложение по допиливанию данной библиотеки, или принципиально другой подход к решению задачи, то напишите в соответствующей теме.

Post's attachments

HotkeyUserFunc.ahk 10.88 kb, 4 downloads since 2013-05-28 

You don't have the permssions to download the attachments of this post.
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

29 (изменено: creature.ws, 2013-05-28 16:40:45)

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

Разница в быстродействии незначительная. Код, который помещается на одном экране — всегда лучше многоэкранной портянки. Публичный код прежде всего должен быть понятен, быстродействие на втором месте (если речь о разработке, созданной по собственной инициативе, «для сообщества»).
Предложение в сообщении #28 здравое. Отсылки к «библиотеке» неуместны.

serzh82saratov у меня предложение — пишите код как пожелаете, размещайте что угодно в коллекции, но добавляйте «дисклеймер» по типу «пользуйтесь этим как законченным приложением, не пытайтесь использовать код скрипта как руководство к скриптописанию»

30

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

Публичный код прежде всего должен быть понятен

А что непонятного?

быстродействие на втором месте.

Сомнительное утверждение. Аргументы есть?

Предложение в сообщении #28 здравое.

Ну и... в чём здравое? Где хотя-бы комментарий к:

Создание горячих клавиш по принципу метки, ограниченной двоеточиями, более предпочтительно

опровергающий это утверждение из справки?

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

31

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

А что непонятного?

Отличный диалог. Вы, как обычно, начинаете пустой спор. Продолжайте, не буду вам мешать.

32 (изменено: serzh82saratov, 2013-05-28 16:51:12)

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

не пытайтесь использовать код скрипта как руководство к скриптописанию

Вот это очень интересно! Где я такое утверждал???

по типу «пользуйтесь этим как законченным приложением,

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

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

33 (изменено: serzh82saratov, 2013-05-28 17:08:18)

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

creature.ws
Вы считаете отличным диалогом - высказывание неаргументированных утверждений общими фразами?

Вы, как обычно, начинаете пустой спор.

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

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

34

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

creature.ws пишет:

(если речь о разработке, созданной по собственной инициативе, «для сообщества»).

Первое предложение топика пишет:

Сделал себе на замену ... бла бла бла ... простой скрипт, может кому подойдёт.

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

35 (изменено: Irbis, 2013-05-28 18:49:30)

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

serzh82saratov пишет:

Что именно тут не ясно?:

Client area size: width 1680 height 975     top 36 left 9 bottom 9 right 9

Похоже, у кого-то из нас запущенный случай искаженного восприятия реальности - я же привел скриншот, на котором параметры Client area size, мягко говоря, трудно интерпретировать как нормальные для существующих на данный момент разрешений дисплеев. Возможно, дело в том, что я использую АНК 64-битную версию

По другим пунктам от комментариев воздержусь, причину (если вам будет угодно) придумайте сами.

36

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

Похоже, у кого-то из нас запущенный случай искаженного восприятия реальности - я же привел скриншот, на котором параметры Client area size, мягко говоря, трудно интерпретировать как нормальные для существующих на данный момент разрешений дисплеев.

Ну зачем же так откровенно грубить? У меня картинки отключены из-за мобильного интернета, и я просто незаметил её присутствие в посте. Посмотрев на неё конечно всё очевидно. Вы бы тоже могли догадатся, т.к. я привёл текст в котором другие цифры. Или хотя-бы переспросить, в таком очевидном случае.

Возможно, дело в том, что я использую АНК 64-битную версию

Переделайте функции GetClientSize и GetClientPos.

По другим пунктам от комментариев воздержусь


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

причину (если вам будет угодно) придумайте сами.


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


Давайте перепишем рабочий код чтобы он хорошо и продвинуто смотрелся у меня в блокноте, и пускай будет чуть медленнее и останутся теже самые функции, зато уберём хвостик с самого конца кода который не даёт спокойно спать. А завтра скажем что надо ещё что-то  исправить, просто потому-что вот так надо и с этим кто-то ещё согласен.
А ТС нехороший человек, потому-что не идёт у нас поводу, и за это его вопросы мы будем байкотировать

Я под этим неподписываюсь.

И у команды хоткей есть недостаток. У меня в другом скрипте есть глобальные гор. клавиши. При запуске вашего кода эти кнопки неопределяются в АНКSpy.

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

37

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

Переделайте функции GetClientSize и GetClientPos.

Имхо этим должен заниматься автор программы.
Так как это его детище.

38

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

Malcev пишет:

Имхо этим должен заниматься автор программы.
Так как это его детище.

Я думаю, автор должен только указать, в какой среде работает его программа. Приспосабливать её ко всем существующим вариантам он не обязан.

39

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

Я имел в виду "должен != обязан", а "должен = правильнее".
Переформулирую.
Этим правильнее заниматься автору программы.
Так как это его детище.

40

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

Malcev
    Необходимых познаний для переделки этих функций у меня нет. Я всегда готов выслушать критику (в адекватном виде) и конструктивно её обсудить. Если есть решение, и аргументы к его применению я могу обновить код, и выложить его, так как я топик стартер и естественно всем удобнее и понятней качать свежие версии с первого поста.
    Но когда разговор идёт с первого поста респондента в ключе - автор ты пишешь не так и неправильно, переделай свой код на мой вкус и цвет, иначе ты нехороший человек... и это неподлежит обсуждению, то желание что-то для кого-то делать лично у меня резко стремится к нулю.

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

41 (изменено: serzh82saratov, 2013-05-31 23:52:55)

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

v1.67
+ Добавлена инфо для контрола msctls_updown32

Проблема с msctls_updown32: неопределяется максимум диапазона.
Код:


GetInfo_msctls_updown:
    SendMessage, 0x0400+102,,,, ahk_id %MouseControlID%        ;     UDM_GETRANGE
    UDM_GETRANGE := ErrorLevel
    SendMessage, 0x400+114,,,, ahk_id %MouseControlID%        ;     UDM_GETPOS32
    GetInfoCtrl := "Level: " ErrorLevel "     ||     Range:   min " UDM_GETRANGE >> 16 "   max No support" 
    MouseControlNN_Sub := "msctls_updown32" 
    Return

Проблема с msctls_trackbar32: невсегда определяется стиль TBS_REVERSED (параметр Invert для Slider в АНК) например на контролах окон AutoHotkey. К примеру этот стиль есть на ползунке микшера громкости в Win-7, и определяется верно.
Код:


GetInfo_msctls_trackbar:
    SendMessage, 0x0400+1,,,, ahk_id %MouseControlID%        ;     TBM_GETRANGEMIN
    TBM_GETRANGEMIN := ErrorLevel
    SendMessage, 0x0400+2,,,, ahk_id %MouseControlID%        ;     TBM_GETRANGEMAX
    TBM_GETRANGEMAX := ErrorLevel
    SendMessage, 0x0400,,,, ahk_id %MouseControlID%            ;     TBM_GETPOS
    (ControlGetStyle & 0x0200)    ? (TBM_GETPOS := TBM_GETRANGEMAX - (ErrorLevel - TBM_GETRANGEMIN) , TBS_REVERSED := "Yes")
                                : (TBM_GETPOS := ErrorLevel , TBS_REVERSED := "No")
    GetInfoCtrl := "Level: " TBM_GETPOS "     ||     Invert style: " TBS_REVERSED
    . "`nRange:   min " TBM_GETRANGEMIN "   max " TBM_GETRANGEMAX
    MouseControlNN_Sub := "msctls_trackbar32"   
    Return

Gui для опытов:


Gui, Add, Slider, w100 h100 Invert Range22-333, 44
Gui, Add, Slider, w100 h100 Range22-333, 44
Gui, Add, UpDown, -16  Range22-55 vG2_MoveKeyList w100 h100
GuiControl, Move, G2_MoveKeyList ,  w100 h100 
Gui, show 
return
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

42 (изменено: serzh82saratov, 2013-06-03 09:51:39)

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

AhkSpy v1.69
+ Функции GetClientSize и GetClientPos должны работать и на AutoHotkey х64 бит (спасибо YMP).
+ В переменные настроек добавлена "SpotActiveWin". В режиме "Window" можно определять данные не активного окна, а окна находящегося под курсором. Полезно для окон меню, тултипов, окон с запретом активации, или получения всех параметров дочерних окон. А также может кому-то показатся просто удобным.
+ Запрещено уменьшать окно менее, чем до размеров при старте.

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

43 (изменено: serzh82saratov, 2013-06-03 09:53:39)

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

AhkSpy v1.70

+ Несколько доработок

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

44

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

AhkSpy v1.71
+ Кнопки клавиатуры определяются с помощью WinApi (т.е. любые кнопки). Кнопки мыши и джойстиков, как и ранее, с помощью горячих клавиш.

. Было желание извлекать из SysTabControl список всех пунктов, но метода ненашёл.

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

45

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

serzh82saratov пишет:

+ Функции GetClientSize и GetClientPos должны работать и на AutoHotkey х64 бит (спасибо YMP).

у вас там

GetClientSize(hwnd, ByRef RealWidth, ByRef RealHeight)
{
    VarSetCapacity(rcClient, 16, 0)
    DllCall("user32\GetClientRect","ptr", hwnd ,"ptr",&rcClient)
    RealWidth := NumGet(rcClient, 8, "int"), RealHeight := NumGet(rcClient, 12, "int")
}

эта функция универсальна ?

46

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

эта функция универсальна ?

Я проверял, универсальна. У вас неработает?

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

47 (изменено: Malcev, 2013-06-08 18:28:31)

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

Предложения по доработке.
1) Исправить - При переключении из Mouse%Control в Window и обратно - скрипт изменяет координаты мыши.
2) Добавить - При двойном нажатии правой кнопки мыши в окне скрипта информация копируется и замораживается до повторного двойного нажатия.
Это будет удобно если надо копировать и вставлять несколько значений.
3) От удаления пробелов при нажатии правой кнопки мыши сомнительная польза, так как сам только, что напоролся на контрол в котором текст начинался с пробела.

48 (изменено: Hydrogenium, 2013-06-08 18:51:19)

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

Malcev пишет:

так как сам только, что напоролся на контрол в котором текст начинался с пробела.

надо всегда удалять слева и справа пробелы

т.е.
" Test win " -> "Test win"

хз правда какая функция это делает ))

49

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

Не надо, так как

напоролся на контрол в котором текст начинался с пробела.

хз правда какая функция это делает ))

RButton::
    Copy := Clipboard := RegExReplace(Copy, "(^\s+|\s+$|\R?" D "+\R?)")

50 (изменено: serzh82saratov, 2013-10-24 02:12:48)

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

Malcev пишет:

1) Исправить - При переключении из Mouse%Control в Window и обратно - скрипт изменяет координаты мыши.

Потому что деактивируется окно. И собственно зачем их неизменять?

Malcev пишет:

2) Добавить - При двойном нажатии правой кнопки мыши в окне скрипта информация копируется и замораживается до повторного двойного нажатия.

Вы имеете в виду паузу?

Malcev пишет:

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

Ну пробелы по бокам видно когда обводишь. Польза в том чтоб не прицеливатся при обводке, и выделении двойным щелчком. Можете выделять так:
http://savepic.org/3552897.png
На всех тут неугодишь. Вы можете копировать также как и в Window Spy.

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

51 (изменено: Malcev, 2013-06-09 05:06:08)

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

Потому что деактивируется окно. И собственно зачем их неизменять?

Полагаю логичней сделать так: При нажатии Shift+Tab менялись бы данные и windows и Mouse&Control.
Чтобы можно было переключаться между ними и копировать нужные значения.

Вы имеете в виду паузу?

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

На всех тут неугодишь. Вы можете копировать также как и в Window Spy.

Может тогда если встречаем пробел в тексте контрола в начале или в конце заменяем его на %A_Space%?
Далее.
1) Хорошо бы было сделать что-то с окошком для определения цвета, а то сейчас трясется как припадочное.
Раньше, вроде, такого не замечал.
2) На мой взгляд стоит поменять местами Mouse % Control с Window, так как значения Mouse % Control используются чаще.
3) Режим определения цвета я бы оставил во всех 3 вкладках, чтобы лишний раз не переключаться.
4) Разделить секции пустыми строками, а то все в одну кучу, типа

( Relative Mouse Pos )
Screen:  x1545 y659     ||     1545, 659
? ? ? ? ?  active win process: "firefox.exe"  ? ? ? ? ?
Window: x1549 y663     ||     1549, 663
Client area:  x1545 y640     ||     1545, 640

( Class & ProcessName Win & Id)

52

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

Может тогда если встречаем пробел в тексте контрола в начале или в конце заменяем его на %A_Space%?

Непонял. Пример кода в студию.

1) Хорошо бы было сделать что-то с окошком для определения цвета, а то сейчас трясется как припадочное.

Незнаю о чём вы.

2) На мой взгляд стоит поменять местами Mouse % Control с Window, так как значения Mouse % Control используются чаще.

Timer := "B_Mouse"

3) Режим определения цвета я бы оставил во всех 3 вкладках, чтобы лишний раз не переключаться.

Я бы оставил как есть.

4) Разделить секции пустыми строками, а то все в одну кучу

Всё хорошо видно.

Остальное пробуйте в новой версии. Думаю переменные SpotActiveWin и AltEsc вам надо перевести в ноль. При таком раскладе не требуется даже деактивировать окно для получения данных, можно просто удерживать Shift+Tab.


Пауза по кнопке "Pause"

AhkSpy v1.73

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

53

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

Поправил ошибку с Shift+Tab.
AhkSpy v1.74

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

54

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

Спасибо!

Непонял. Пример кода в студию.

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

Всё хорошо видно.

У меня стоит классическая тема в виндовсе и поэтому выглядит все в куче.

Хорошо бы было сделать что-то с окошком для определения цвета, а то сейчас трясется как припадочное.

Дергается рамка окошка.
Наведите на какой-нибудь цвет - оставьте его стоять и увидите.

55

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

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

Пример кода в студию.

У меня стоит классическая тема в виндовсе и поэтому выглядит все в куче.

На 7 всё хорошо. Урезать инфо при размерах как при старте, или увеличивать высоту окна нехочется. Попробуйте поменять символ разделителя параметров на более "очевидный".

Дергается рамка окошка.
Наведите на какой-нибудь цвет - оставьте его стоять и увидите.

На 7 всё хорошо.

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

56 (изменено: Malcev, 2013-06-10 14:36:37)

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

Send ^{vk43}  ;  "C"

Удобней было бы писать в пояснении так

Send ^{vk43}  ;  "Ctrl+C"

Еще хорошо бы сделать, чтобы в Button при выделении текста, Ctrl+C - выполнял функцию копирования.

Пример кода в студию.

Понятия не имею Но это не столь важно.

57

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

Удобней было бы писать в пояснении так

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

Еще хорошо бы сделать, чтобы в Button при выделении текста, Ctrl+C - выполнял функцию копирования.

И убрать это сочетание из определяемых!? И главное зачем???

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

58

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

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

Все-таки так наглядней, опять-таки когда много шорткатов.
Цвет при паузе предлагаю заменить на "D4D0C8"

И убрать это сочетание из определяемых!? И главное зачем???

Потому что Ctr+C - Это копирование.
Многие думаю не используют мышку, а юзают кнопки.
Не надо убирать, просто смотреть на окно и если в нем текст обведен, то значит хотим копировать.
А при деактивировании окна выделение снимаем.

59

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

Цвет при паузе предлагаю заменить на "D4D0C8"

Да получше, добавлю в след. раз.

Многие думаю не используют мышку, а юзают кнопки.

Слишком много заморочек,  особенно теперь с SetWindowsHookEx.

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

60

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

А нельзя внести исключение? Типа чтоб посылалось в буфер обмена?

61

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

А нельзя внести исключение? Типа чтоб посылалось в буфер обмена?

Ничё непонял???

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

62

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

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

63

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

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

Я считаю неудобным когда не все клавиши и сочетания определяются в режиме Button.

И пару раз подглючивало комп при определении кнопок - кнопки нигде не посылались, кроме как в вашей программе.
То есть в блокноте написать что-то было невозможно.

это после AhkSpy v1.71 ?

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

64

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

Да, это в версии AhkSpy v1.74
И подскажите, пожалуйста, что вписать чтобы сочитание Ctrl+c посылало в буфер обмена?

65

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

И подскажите, пожалуйста, что вписать чтобы сочитание Ctrl+c посылало в буфер обмена?

Не до конца понимаю желаемое...

Да, это в версии AhkSpy v1.74

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

Возвращаемся назад в определении кнопок:

AhkSpy v1.75

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

66

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

Хотелось бы чтобы в окне Button при выделении какого-нибудь текста и нажатии Ctrl+C выделяемый текст помещался в буфер обена, чтобы потом его вставить в блокнот с помощью Ctrl+V

67

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

Хотелось бы чтобы в окне Button при выделении какого-нибудь текста и нажатии Ctrl+C выделяемый текст помещался в буфер обена

Незнаю как помочь.
Чем вам правая кнопка неугодила...

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

68

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

Хорошо. Будем привыкать.

69

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

+ Добавил определение цвета в режим Window
+ Добавил в конец списка символ разделителя параметров для визуализации конца определённых параметров, переводов строки в конце текста, а также для копирования параметров с пробелами и переводами строки по краям:

http://savepic.org/3733807.png



AhkSpy v1.76

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

70

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

Может быть излишне, добавил функцию англо - русского переводчика. Взято здесь, спасибо teadrinker.
Голосуем - стоит-ли добавлять в основной билд.

http://savepic.org/3726040.png

Post's attachments

AhkSpy.ahk 33.62 kb, 9 downloads since 2013-06-20 

You don't have the permssions to download the attachments of this post.
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

71

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

Мне кажется излишним.
Да и удобство в реализации хромает.
translate.google удобней.

72

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

Удобство - что всё в одном.
И что именно хромает?

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

73

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

1) Зачем жать на среднюю кнопку, когда в гугле все происходит на автомате - текст вставил - в другом окошке перевод.
2) Эти разделения точками только вносят путаницу - 2 окна удобнее.
3) Невозможно вставлять текст с помощью правой кнопкой мыши, так как автоматом происходит копирование.

Удобство - что всё в одном.

Аргумент весьма спорный.
Можно тогда и дальше пойти и вставить mp3-splitter или на базе ffmpeg - кодировщик видео.

74

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

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

75

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

Malcev пишет:

хелп по автохотки

Не совсем понимаю как это должно выглядеть. 

Malcev пишет:

Да и удобство в реализации хромает.
translate.google удобней.

А тут браузер будет удобней...

Значит желание впихнуть хелп проистекает из идеи - "Удобство - когда всё в одном"?

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

76

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

Значит желание впихнуть хелп проистекает из идеи - "Удобство - когда всё в одном"?

Нет, просто это относится непосредственно к автохотки.
А справку сделать по аналогии с английской как в самом автохотки.

77 (изменено: serzh82saratov, 2013-06-21 21:04:16)

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

Malcev
Назвались груздем:

+ открыть спойлер

LinkArr := {"Введение" : "Intro.html" 
            , "Drive" : "Drive.html"
            , "GUI (Графический интерфейс пользователя)" : "GUI.html"
            , "GUI (Типы элементов управления)" : "GUIControls.html"
            , "#AllowSameLineComments" : "AllowSameLineComments.html" }
            

            
CommandList =
(  Join| 
#AllowSameLineComments
#ClipboardTimeout
#CommentFlag
#ErrorStdOut
#EscapeChar
#HotkeyInterval
#HotkeyModifierTimeout
#Hotstring
#IfWinActive/Exist
#Include/#IncludeAgain
#InstallKeybdHook
#InstallMouseHook
#KeyHistory
#MaxHotkeysPerInterval
#MaxMem
#MaxThreads
#MaxThreadsBuffer
#MaxThreadsPerHotkey
#NoEnv
#NoTrayIcon
#Persistent
#SingleInstance
#UseHook
#WinActivateForce
AutoHotkey and Russian language are friends forever [Androgen Belkin]
AutoHotkey и русский язык – дружба навеки (версия 4 от 13 июля 2006 г.) [Androgen Belkin]
AutoHotkey и русский язык – дружба навеки [Androgen Belkin]
AutoHotkey: автоматизация приложений
AutoHotkey: автоматизация приложений с Web-интерфейсом
AutoHotkey: ожидание окон приложений
AutoHotkey: свёртка приложений в трей
BlockInput
Click
Clipboard, ClipboardAll, и OnClipboardChange
ClipWait
Control
ControlClick (клик мыши по элементу управления)
ControlFocus
ControlGet
ControlGetFocus
ControlGetPos
ControlGetText
ControlMove
ControlSend / ControlSendRaw
ControlSetText
DetectHiddenText
DetectHiddenWindows
DllCall() [v1.0.33+]
Drive
DriveGet
DriveSpaceFree
EnvAdd (+=, ++)
EnvDiv (/=)
EnvMult (*=)
EnvSet
EnvSub (-=, --)
EnvUpdate
ErrorLevel
Exit
ExitApp
FileAppend
FileCopy
FileCopyDir
FileCreateDir
FileCreateShortcut
FileDelete
FileGetAttrib
FileGetShortcut
FileGetSize
FileGetTime
FileGetVersion
FileInstall
FileMove
FileMoveDir
FileRead
FileReadLine
FileRecycle
FileRecycleEmpty
FileRemoveDir
FileSelectFile
FileSelectFolder
FileSetAttrib
FileSetTime
FormatTime
GetKeyState
Gosub
Goto
GroupActivate
GroupAdd
GroupClose
GroupDeactivate
GUI (Графический интерфейс пользователя)
GUI (Типы элементов управления)
Hotkey
If var [not] in/contains MatchList
IfExist / IfNotExist
IfInString/IfNotInString
IfWinActive / IfWinNotActive
IfWinExist / IfWinNotExist
IniDelete
IniRead
IniWrite
Input
KeyHistory
KeyWait
ListHotkeys
ListView [v1.0.36+]
Loop (parse a string)
Loop (registry)
Loop (файлы и папки)
Loop (чтение файла)
Menu
MouseClick
MouseClickDrag
MouseGetPos
MouseMove
OnExit
PostMessage/SendMessage
Process
RegDelete
RegEx - краткий справочник
RegExMatch()
RegExReplace()
RegisterCallback() [v1.0.47+]
RegRead
RegWrite
Run / RunWait
RunAs
Send/SendRaw/SendInput/SendPlay/SendEvent
SendMode
SetControlDelay
SetDefaultMouseSpeed
SetFormat
SetKeyDelay
SetMouseDelay
SetNumScrollCapsLockState
SetStoreCapslockMode
SetTimer
SetTitleMatchMode
SetWinDelay
SetWorkingDir
Shutdown
Sleep
SoundBeep
SoundGet
SoundGetWaveVolume
SoundPlay
SoundSet
SoundSetWaveVolume
SplitPath
StatusBarGetText
StatusBarWait
StringReplace
Suspend
WinActivate
WinActivateBottom
WinClose
WinGet
WinGetActiveStats
WinGetActiveTitle
WinGetClass
WinGetPos
WinGetText
WinGetTitle
WinHide
WinKill
WinMaximize
WinMenuSelectItem
WinMinimize
WinMinimizeAll / WinMinimizeAllUndo
WinMove
WinRestore
WinSet
WinSetTitle
WinShow
WinWait
WinWaitActive / WinWaitNotActive
WinWaitClose
Введение
Горячие клавиши для мыши, джойстика и клавиатуры
Замещение и блокировка горячих клавиш
Как передавать скрипту параметры командной строки [Androgen Belkin]
Как правильно установить AutoHotkey [Androgen Belkin]
Коды оконных сообщений
Коды языков
Общий обзор программы и краткое обучение
Особенности работы с переменными окружения в скриптах AutoHotkey [Androgen Belkin]
Отправка сообщений окну или его элементам управления
Переменные и выражения
Переназначение клавиш и кнопок мыши
Последнее найденное окно и параметр WinTitle
Потоки
Скрипты
Создание клавиатурной макрокоманды или макрокоманды мыши
Список клавиш и кнопок мыши/джойстика
Список команд
Стандартные горячие клавиши в Windows XP
Строки автозамены 
Туториал - Запуск программы или документа (продолжение)
Функции [v1.0.31+]
Часто задаваемые вопросы (FAQ)
)


wListBox := 250
Domen := "http://www.script-coding.com/AutoHotkey/"

Gui, Color, E0E0E0
Gui +Resize +HWNDhGui
Gui Add, Edit, x5 y5 w%wListBox% gSearch vSearch
Gui Add, ListBox, hwndhListBox xp y+10 wp gView vListBox, % CommandList
Gui Add, ActiveX, % "vWB hwndhActiveX", Shell.Explorer
Gui Show, w444 h444
WB.Navigate("http://www.script-coding.com/AutoHotkeyTranslation.html")
Return

View:
    GuiControlGet, ListBox
    WB.Navigate(Domen LinkArr[ListBox])
    WinMove, ahk_id %hActiveX%, , % wListBox+5,0
    return
    
Search:
    GuiControlGet, Search  
    GuiControl, ChooseString, ListBox, % Search
    return
 
GuiSize:
   WinMove, ahk_id %hActiveX%, , % wListBox+5,0, % A_GuiWidth - (wListBox+5), A_GuiHeight 
   GuiControl, MoveDraw, ListBox, % "h" A_GuiHeight-50
   return 

С вас законченный массив "LinkArr", или другая реализация

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

78 (изменено: Malcev, 2013-06-21 21:05:45)

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

Не понимаю о чем вы.
Есть файлик:
http://www.script-coding.com/AutoHotkey/AutoHotkey.zip
Вот если бы в вашем скрипте по нажатию f1 он вылазил - по-моему достаточно.

79

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

Вот если бы в вашем скрипте по нажатию f1 он вылазил - по-моему достаточно.

Чтоб видеть свежие правки.
Чтоб не нарушался принцип: один скрипт - один файл.
Чтоб работало компилированным везде.
Зачем тот же онлайн переводчик? Если можно скачать базу.

Просто добавить

 f1:: Run AutoHotkey.chm

как-то скучно

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

80

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

На сайте смотреть неудобно.
Поиска толкового нету.
Может и скучно, зато удобно.

81

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

На сайте смотреть неудобно.

Вы про необходимость интернета?

Поиска толкового нету.

Как раз таки нет удобного (и единственно правильного для меня) алфавитного указателя.
Но он есть в оригинальной справке.

Может и скучно, зато удобно.

Ну это любой может под себя доделать.

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

82

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

Ненаглядно - путаница в каталогизации.

Ну это любой может под себя доделать.

Оно-то да, может. Но вы же собираетесь апдейты делать, как я понимаю.

83

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

Ненаглядно - путаница в каталогизации.

Отсутствие алфавитного указателя. Я пользуюсь только им.

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

Путь к файлу то вам указывать...

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

84 (изменено: Malcev, 2013-06-22 00:51:28)

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

А зачем указывать, если есть A_ScriptDir.
Я имею в виду если эту фичу использовать, то вам сразу 2 файла загружать.

85

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

Malcev пишет:

Я имею в виду если эту фичу использовать, то вам сразу 2 файла загружать.

Чтоб не нарушался принцип: один скрипт - один файл.

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

86

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

Дело ваше, но заметьте, что в большинстве программ хелп идет отдельным файлом.

87

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

К программам, да. А это маленькая утилита.

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

88 (изменено: serzh82saratov, 2013-06-24 18:07:59)

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

Malcev пишет:

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

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


Gosub Load
D := "=", I := ""            ;    Символ разделителя параметров 
Loop 15                        ;    Не менее 3
    I .= D
SpotActiveWin := 1            ;    0 - если нужны данные об окне под курсором. 1 - данные об активном окне
AltEsc := 1                    ;    0 - чтобы при нажатии кнопок режимов не деактивировать окно. 1 - деактивировать  
Hotkey, If, MyCondition()
HotKey, RButton, Off        ;    Выключаем правую кнопку
Hotkey, If
HotKey, Pause, Off            ;    Выключаем Pause
HotKey, F2, MyHotKey            ;    Назначаем кноку на свою программу
Gui, Add, Button, x+10 yp hp w%wKey% gMyButton, Моя кнопка
GuiControl, Hide, HideTranslate  ;    Скрываем переводчик
Gosub B_Buttons                ;    Стартовая подпрограмма - B_Win|B_Mouse|B_Buttons
Return
    
MyButton:
MyHotKey:
    ToolTip %A_ThisLabel%
    Return

#If WinActive("ahk_id " hGui)
F1:: Run %A_ScriptDir%\AutoHotkey.chm,,,max
#If

Load:
    #Include %A_ScriptDir%\AhkSpy.ahk

------------------------

AhkSpy v1.77

+ Добавил всё же переводчик (справа подальше), ибо:
на скорость не влияет.
сам пользуюсь, и редактировать два файла неудобно.
таким же дилетантам как я, думаю поможет при программировании.

+ При нажатии на "цветной квадрат", окно деактивируется.

------------------------

AhkSpy v1.78

Несколько правок

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

89 (изменено: serzh82saratov, 2013-07-11 12:37:46)

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

AhkSpy v1.79
+ В связи с выходом новой версии AutoHotkey v1.1.11.01, добавлена опция Gui, -DPIScale. Иначе кнопки слишком большие.

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

90

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

А нет желания добавить в ваш скрипт вот этот?
http://forum.script-coding.com/viewtopic.php?id=23

91

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

Считаете что к АНК это имеет большее отношение, чем онлайн справка AutoHotkey отображаемая в сабже?
Думаю, что запуск чего то по хоткею все пользующие AutoHotkey организуют в своих "повседневных" скриптах, кому как удобно.

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

92

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

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

Post's attachments

AhkSpy.ahk 32.66 kb, 24 downloads since 2013-08-04 

You don't have the permssions to download the attachments of this post.
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

93

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

Не знаю, что там с хуком, но при деактивации окна скрипта у меня Alt остался в нажатом состоянии, т. е. где-то перехватывается посыл Alt Up.

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

94 (изменено: serzh82saratov, 2013-08-05 01:43:23)

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

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

HF_Unhook() { ;***
Global
DllCall("UnhookWindowsHookEx", UInt, HF_State)
HF_State := "" , HF_CleanMod()
If HF_DelStr
%HF_UserFuncName%("", "", "", "", HF_VkCode, HF_ThisKey)
SendInput, {LShift Up}{RShift Up}{LCtrl Up}{RCtrl Up}{LAlt Up}{RAlt Up}{LWin Up}{RWin Up}
} ;**

более не замечал. 
Как думаете чем лечить? Если расположить SendInput до UnhookWindowsHookEx, это на что-то повлияет?

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

95

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

Да я там подробно не разбирался, это непросто.

+ Off:
serzh82saratov пишет:
1Joy1::
1Joy2::
1Joy3::
1Joy4::
1Joy5::
1Joy6::
1Joy7::
1Joy8::
1Joy9::
1Joy10::
1Joy11::
1Joy12::
1Joy13::
1Joy14::
1Joy15::
1Joy16::
1Joy17::
1Joy18::
1Joy19::
1Joy20::
1Joy21::
1Joy22::
1Joy23::
1Joy24::
1Joy25::
1Joy26::
1Joy27::
1Joy28::
1Joy29::
1Joy30::
1Joy31::
1Joy32::

2Joy1::
2Joy2::
2Joy3::
2Joy4::
2Joy5::
2Joy6::
2Joy7::
2Joy8::
2Joy9::
2Joy10::
2Joy11::
2Joy12::
2Joy13::
2Joy14::
2Joy15::
2Joy16::
2Joy17::
2Joy18::
2Joy19::
2Joy20::
2Joy21::
2Joy22::
2Joy23::
2Joy24::
2Joy25::
2Joy26::
2Joy27::
2Joy28::
2Joy29::
2Joy30::
2Joy31::
2Joy32::

3Joy1::
3Joy2::
3Joy3::
3Joy4::
3Joy5::
3Joy6::
3Joy7::
3Joy8::
3Joy9::
3Joy10::
3Joy11::
3Joy12::
3Joy13::
3Joy14::
3Joy15::
3Joy16::
3Joy17::
3Joy18::
3Joy19::
3Joy20::
3Joy21::
3Joy22::
3Joy23::
3Joy24::
3Joy25::
3Joy26::
3Joy27::
3Joy28::
3Joy29::
3Joy30::
3Joy31::
3Joy32::

4Joy1::
4Joy2::
4Joy3::
4Joy4::
4Joy5::
4Joy6::
4Joy7::
4Joy8::
4Joy9::
4Joy10::
4Joy11::
4Joy12::
4Joy13::
4Joy14::
4Joy15::
4Joy16::
4Joy17::
4Joy18::
4Joy19::
4Joy20::
4Joy21::
4Joy22::
4Joy23::
4Joy24::
4Joy25::
4Joy26::
4Joy27::
4Joy28::
4Joy29::
4Joy30::
4Joy31::
4Joy32::
    HF_KeyName := HF_Hotkey := HF_ThisKey := A_ThisHotkey
    HF_VkCode := HF_SCCode := HF_DelStr := HF_PrCode := HF_PR_Result := ""
    HF_Prefix := HF_PrefModCtrl HF_PrefModAlt HF_PrefModShift HF_PrefModWin
    %HF_UserFuncName%(HF_ModCtrl HF_ModAlt HF_ModShift HF_ModWin, HF_KeyName, HF_Prefix, HF_Hotkey, HF_VkCode, HF_ThisKey)
    Return

Ну, или так:

Loop 4
{
   i := A_Index
   Loop 32
      Hotkey, %i%Joy%A_Index%, Joy, On
}
return

Joy:
   HF_KeyName := HF_Hotkey := HF_ThisKey := A_ThisHotkey
   HF_VkCode := HF_SCCode := HF_DelStr := HF_PrCode := HF_PR_Result := ""
   HF_Prefix := HF_PrefModCtrl HF_PrefModAlt HF_PrefModShift HF_PrefModWin
   %HF_UserFuncName%(HF_ModCtrl HF_ModAlt HF_ModShift HF_ModWin, HF_KeyName, HF_Prefix, HF_Hotkey, HF_VkCode, HF_ThisKey)
   Return

Китайский код.

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

96

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

Это тут уже бурно обсуждалось. Так они не становятся последними зарегистрированными. То есть если перед запуском Window Spy, запущен другой скрипт в котором есть 1Joy1:: то он не будет определён в Window Spy. Думаю это критично для кода определяющего кнопки . Да и справка советует в таких случаях записывать хоткеи как метки. Сам люблю лаконичность в коде, но здесь оно ни к чему. Товарищ Irbis приводил туже ссылку на индусский код. Повторюсь что предлагаемый вами вариант записи был первым пришедшим в голову, но я от него отказался. Почему все в первую очередь пытаются в других увидеть тупость? Можно ведь сначала спросить, почему так, и уже после упражнятся мягко говоря в сарказме.

teadrinker пишет:

это непросто.

Нужно только это:



HF_Hotkey( Option = "", HF_UserFunc = "")    { ;***
    Global
    Static HF_IsStart
    If !HF_IsStart
    {
        OnMessage(0x6, "HF_WM_ACTIVATE")
        HF_ModButtons := {"vkA4":"Alt","vkA5":"Alt","vkA2":"Ctrl","vkA3":"Ctrl","vkA0":"Shift","vkA1":"Shift","vk5B":"Win","vk5C":"Win"}
        HF_PrefMod := {"Alt":"!","Ctrl":"^","Shift":"+","Win":"#"}
        HF_Buttons := "|vkBA|vkBB|vkBC|vkBD|vkBE|vkBF|vkC0|vkDB|vkDC|vkDD|vkDE|vk41|vk42|vk43|vk44|vk45|vk46|vk47|vk48|"
                    . "vk49|vk4A|vk4B|vk4C|vk4D|vk4E|vk4F|vk50|vk51|vk52|vk53|vk54|vk55|vk56|vk57|vk58|vk59|vk5A|"     ; 37 Letter Buttons
        SetBatchLines -1
        OnExit, HF_Exit
        HF_PoiWrite := RegisterCallback("HF_Write", "Fast")
        HF_IsStart := 1
    }
    HF_UserFuncName := (HF_UserFunc = "") ? HF_UserFuncName : HF_UserFunc
    If ( Option = "T" )
        Option := HF_State = "" ? "ON" : "OFF"
    If ( Option = "OFF" )
        HF_Unhook() , HF_Man := 1
    Else If ( Option = "ON" )
        HF_Hook() , HF_Man := 0
    HF_CleanMod()
    Return HF_State

    HF_Exit:
        DllCall("UnhookWindowsHookEx", UInt, HF_State)
        SendInput, {LShift Up}{RShift Up}{LButton Up}{LCtrl Up}{RCtrl Up}{LAlt Up}{RAlt Up}{LWin Up}{RWin Up}
        ExitApp
} ;**

HF_Write(HF_nCode, HF_wParam, HF_lParam)    { ;***
    Global
    Critical
    SetFormat, IntegerFast, H
    HF_VkCode := "vk" SubStr( NumGet(HF_lParam+0), 3) 
    HF_SCCode := "sc" SubStr(((NumGet(HF_lParam+0, 8) & 1) <<8) | NumGet(HF_lParam+0, 4), 3)
    IF (HF_wParam = 0x100 || HF_wParam = 0x104)    ;  WM_KEYDOWN = 0x100, WM_SYSKEYDOWN = 0x104
    {
        IF HF_IS_Mod := HF_ModButtons[HF_VkCode]
            GoTo, HF_PressMod
        IF ( HF_PrCode = HF_SCCode )
            Return 1
        GoTo, HF_Write
    }
    IF HF_IS_Mod := HF_ModButtons[HF_VkCode]
        GoTo, HF_PressMod_Up
    Return 1

    HF_PressMod_Up:
        HF_Mod%HF_IS_Mod% := HF_PrefMod%HF_IS_Mod% := ""
        If (HF_Hotkey != "")
            Return 1
        GoTo, HF_Write

    HF_PressMod:
        If HF_Mod%HF_IS_Mod% <>
            Return 1
        HF_Mod%HF_IS_Mod% := HF_IS_Mod "+" , HF_PrefMod%HF_IS_Mod% := HF_PrefMod[HF_IS_Mod] , HF_Hotkey := ""

    HF_Write:
        HF_PrCode := HF_SCCode , HF_KeyName := HF_ThisKey := GetKeyName(HF_VkCode HF_SCCode)
        (HF_IS_Mod != "") ? (HF_KeyName := HF_Prefix := "" , HF_DelStr := 1)
        : (HF_Prefix := HF_PrefModCtrl HF_PrefModAlt HF_PrefModShift HF_PrefModWin
        , (HF_Hotkey := InStr(HF_Buttons, "|" HF_VkCode "|") ? HF_VkCode : HF_ThisKey) , HF_PrCode := HF_DelStr := "")
        If (HF_PR_Result = HF_ModCtrl HF_ModAlt HF_ModShift HF_ModWin HF_KeyName HF_Prefix HF_Hotkey HF_VkCode HF_ThisKey)
            Return 1
        %HF_UserFuncName%(HF_ModCtrl HF_ModAlt HF_ModShift HF_ModWin, HF_KeyName, HF_Prefix, HF_Hotkey, HF_VkCode, HF_ThisKey)
        HF_PR_Result := HF_ModCtrl HF_ModAlt HF_ModShift HF_ModWin HF_KeyName HF_Prefix HF_Hotkey HF_VkCode HF_ThisKey
        Return 1
} ;**

HF_WM_ACTIVATE(HF_wp)    { ;***
    Global 
    IF (HF_wp & 0xFFFF = 0 && HF_State )
        HF_Unhook() , HF_ExtFunc("HF_WinStatus", 0)
    IF (HF_wp & 0xFFFF && !HF_State && !HF_Man)
        HF_Hook() , HF_ExtFunc("HF_WinStatus", 1)
} ;**

HF_ExtFunc(F, V) { ;***
    If IsFunc(F)
        %F%(V)
} ;**

HF_Unhook() { ;***
    Global
    DllCall("UnhookWindowsHookEx", UInt, HF_State)
    HF_State := "" , HF_CleanMod()
    If HF_DelStr
        %HF_UserFuncName%("", "", "", "", HF_VkCode, HF_ThisKey)
    SendInput, {LShift Up}{RShift Up}{LCtrl Up}{RCtrl Up}{LAlt Up}{RAlt Up}{LWin Up}{RWin Up}
} ;**

HF_Hook() { ;***
    Global
    HF_DelStr := ""
    HF_State :=    DllCall("SetWindowsHookEx", Int, 13, UInt, HF_PoiWrite, UInt, DllCall("GetModuleHandle", UInt, 0), UInt, 0)
} ;**
HF_CleanMod() { ;***
    Global
    HF_PR_Result := HF_PrCode := HF_ModCtrl := HF_ModAlt := HF_ModShift := HF_ModWin := ""
    HF_PrefModCtrl := HF_PrefModAlt := HF_PrefModShift := HF_PrefModWin := HF_Prefix := ""
} ;**

остальное (можно удалить) написано для определения кнопок джойстиков и мыши, и врядли как то может относится к проблеме. Причём данная проблема не замечалась мною в похожем варианте использования SetWindowsHookEx. В аттаче пример использования.

Post's attachments

Hotkey.ahk 7.6 kb, 3 downloads since 2013-08-05 

You don't have the permssions to download the attachments of this post.
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

97

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

serzh82saratov пишет:

Так они не становятся последними зарегистрированными.

Ну вот пример для проверки. 1-й скрипт:

!1::MsgBox, 1-й скрипт

2-й скрипт:

Hotkey, !1, Label, On
return

Label:
   MsgBox, 2-й скрипт
   return

Запускаем первый, затем второй. Какое сообщение появляется при нажатии Alt+1?

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

98 (изменено: serzh82saratov, 2013-08-05 19:53:07)

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

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

Вопрос то не в философии как код будет эстетичнее смотрется в блокноте, а от чего возникают баги при деактивации окна?

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

99

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

serzh82saratov пишет:

Вопрос то не в философии как код будет эстетичнее смотрется в блокноте, а от чего возникают баги при деактивации окна?

Тут ты ошибаешься. Чем менее "эстетично" код смотрится в редакторе, тем труднее понять, как он работает. У меня меньше времени заняло бы написать всё заново. Но, собственно, код, определяющий клавиши, уже есть в Коллекции, почему бы тебе просто не посмотреть его и не сделать как-то аналогично.

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

100

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

Тут ты ошибаешься. Чем менее "эстетично" код смотрится в редакторе, тем труднее понять, как он работает.

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

Но, собственно, код, определяющий клавиши, уже есть в Коллекции, почему бы тебе просто не посмотреть его и не сделать как-то аналогично.

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

У меня меньше времени заняло бы написать всё заново.

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

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