1

Тема: AHK: Моя собственная прога на Autohotkey не работате на том же железе

AHK: Моя собственная прога на Autohotkey не работает на том же железе на той же ОС (Windows 7 64-bit), после переустановки ОС. Причины понять не могу. Папка открывается, но её расположение на экране не соответствует заданному в файле. Раньше всё работало. В чём может быть загвоздка? Может быть, Мелкомягкие поменяли коды в WinAPI, есть инфа об этом?
Прилагаю файлы моей проги. Она полезная очень, на мой взгляд, и совершенно бесплатная, можете пользоваться. А я хотел бы узнать, почему у меня она сейчас не работает.

Post's attachments

obedientwindows2.ahk 4.54 kb, 9 downloads since 2016-08-15 

You don't have the permssions to download the attachments of this post.

2

Re: AHK: Моя собственная прога на Autohotkey не работате на том же железе

Инструкция

Post's attachments

Инструкция.pdf 359.53 kb, 15 downloads since 2016-08-15 

You don't have the permssions to download the attachments of this post.

3

Re: AHK: Моя собственная прога на Autohotkey не работате на том же железе

Может, раньше какие-то обновления стояли, которые сейчас ещё не установлены?

4

Re: AHK: Моя собственная прога на Autohotkey не работате на том же железе

Всё установлено, по кр. мере Центр обновлений новых не находит. Система лицензионная.

5

Re: AHK: Моя собственная прога на Autohotkey не работате на том же железе

Или может дело в версии Autohotkey? Там постарее версия была, тут новую скачал только что.

6

Re: AHK: Моя собственная прога на Autohotkey не работате на том же железе

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

7

Re: AHK: Моя собственная прога на Autohotkey не работате на том же железе

Я не разработчик, это хобби.
Есть ещё идейки?

8

Re: AHK: Моя собственная прога на Autohotkey не работате на том же железе

Можно поискать по словам "windows 7 не запоминает вид папок".
http://forum.oszone.net/thread-79404.html
Люди пишут, что ковыряние в реестре помогает.

9

Re: AHK: Моя собственная прога на Autohotkey не работате на том же железе

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

10 (изменено: Indrik, 2016-08-15 22:00:18)

Re: AHK: Моя собственная прога на Autohotkey не работате на том же железе

Добавил в код msgbox-ы для отладки. Обнаружил, что прога зависает на этапе:

msgbox, path=%path%

run, "%path%",,,pid
if not pid
winwait, %path%
if pid
winwait, ahk_pid %pid%

msgbox, pid=%pid%`nxcoord=%xcoord% ycoord=%ycoord%

Окно открывается, но сообщение с pid и т.д. не отображается и скрипт зацикливается. Хотя путь вначале отображается. Т.е. видимо прога ждёт id процесса и не может дождаться, зависает на этапе winwait.
Почему?

11

Re: AHK: Моя собственная прога на Autohotkey не работате на том же железе

А так работает?

run, "%path%",,,pid
winwait, ahk_pid %pid%
msgbox, pid=%pid%`nxcoord=%xcoord% ycoord=%ycoord%

12

Re: AHK: Моя собственная прога на Autohotkey не работате на том же железе

Так как вы написали, для моих целей не подходит, поскольку мне надо сразу после run узнать, является ли запускаемое нечто приложением (есть process ID) или окном (ID нет).
Но в любом случае, спасибо. Я пошёл более сложным, но правильным путём. Полностью переписал код программы, так что теперь определение происходит по имени файла, который сканируется ещё до того, как будет запущен. Это на корню исключает возможность зависаний на этапе winwait (ну, кроме тех случаев, когда зависает сама программа сразу при старте, но это большая редкость и не проблема скрипта).

13

Re: AHK: Моя собственная прога на Autohotkey не работате на том же железе

Вообще, очень похоже, что Мелкомягкие поменяли принцип обращения к окну. Если раньше к нему можно было обратиться через PID приложения, к которому оно относится, то теперь нужно обращаться непосредственно к самому окну. В принципе, логично, т.к. у одного процесса окон может быть много (чтобы не было путаницы).
Раньше при обращении через PID автоматом выбиралось последнее активное окно.