1 (изменено: ypppu, 2017-12-21 19:00:05)

Тема: AHK: PostMessage

Хочу передать информацию в виде текста или числа из одного окна в другое.
Использую следующие скрипты:

+ Cкрипты

Сначало запускаем второй скрипт и вписываем ahk_pid в первый и после запускаем первый
Скрипт 1:


PID := DllCall("GetCurrentProcessId")
PostMessage, DllCall("RegisterWindowMessage", Str, "WM_INFO"), 1,PID,, % "ahk_pid" "4364"
Msgbox % ErrorLevel

Msgbox % "End"
Reload

Скрипт 2:


OnMessage(DllCall("RegisterWindowMessage", Str, "WM_INFO"), "WM_INFO_RECEIVER")  ; регистрируем сообщение
msgbox % DllCall("GetCurrentProcessId")
Return

WM_INFO_RECEIVER(wp, lp)
{
   msgbox % wp "`n" lp
   return 1
}

Проблема в том, что первый скрипт всегда возвращает в ErrorLevel - 1 (ошибка).
Может что-то не так делаю? Помогите пожалуйста, заранее спасибо.

2

Re: AHK: PostMessage

Не пользовался и не запускал, но эта запись выглядит как-то странно:

"ahk_pid" "4364"

3 (изменено: ypppu, 2017-12-21 18:59:40)

Re: AHK: PostMessage

stealzy я знаю что странно.)
Там есть % перед строкой, то есть:
% "ahk_pid" "4364"
равняется:
ahk_pid4364

4 (изменено: stealzy, 2017-08-14 00:11:09)

Re: AHK: PostMessage

Я про содержимое, а не оформление.
Уверены что pid именно такой? При каждом новом запуске будете менять код?
Что-то не то делаете, посмотрите примеры, откуда вы там берете это.

5 (изменено: ypppu, 2017-12-21 18:59:11)

Re: AHK: PostMessage

stealzy пишет:

Уверены что pid именно такой? При каждом новом запуске будете менять код?

Да, каждый раз меняю. Я ж написал: сначало запускаем второй скрипт и MsgBox выводи PID, после вписываем его в первый скрипт, запускаем.

6

Re: AHK: PostMessage

MandarinKa02 пишет:

Хочу передать информацию в виде текста или числа из одного окна в другое.

MandarinKa02 пишет:

сначало запускаем второй скрипт и MsgBox выводи PID, после вписываем его в первый скрипт, запускаем


Может тогда проще сразу текст вписать?

7

Re: AHK: PostMessage

stealzy пишет:

Может тогда проще сразу текст вписать?

Так, тсссс!! Мы ждем ответа от профессионалов.

8

Re: AHK: PostMessage

Нашел тут небольшой пример.
И причина была в:

DetectHiddenWindows, on

Приписываем это в начало первого скрипта и всё работает.

9 (изменено: stealzy, 2017-08-14 01:27:49)

Re: AHK: PostMessage

Вы в курсе что Pid можно получить из окна? А у любого запущенного скрипта всегда есть скрытое окно, одноименное с файлом скрипта.
И вообще, лучше использовать ahk_id, поскольку оно относится напрямую к окну, в то время как pid - опосредованно.
А еще проще - ", MyScript ahk_class AutoHotkey". Имя конечно надо менять.

10 (изменено: ypppu, 2017-12-21 18:58:52)

Re: AHK: PostMessage

stealzy Пасиба, уже разобрался.

11 (изменено: stealzy, 2017-08-14 01:26:03)

Re: AHK: PostMessage

Пример названия окна:
D:\test.ahk - AutoHotkey v1.1.24.00
Впрочем можно и свое скрытое создать, с каким угодно именем.