Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Есть возможность привязаться к окну. А как отвязаться?, Использую Lua
zumas
сообщение 27.4.2019, 1:30
Сообщение #1


**

Neophyte
Сообщений: 15
Регистрация: 16.4.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.295
Возраст: 38



!!! УЖЕ НАШЁЛ САМ СВОЙ КАСЯК. МОЖНО УДАЛЯТЬ ЭТУ ТЕМУ (или оставить на будущее для других)

Значит читаю документацию: Workwindow_(Lua) и Workwindowpid_(Lua)

Смотрю примеры. И используя
Код

--Lua
local h = findwindow("Блокнот")  -- найти окно блокнота
if h then                        -- если найдено
    workwindow (h[1][1])         -- сделать его рабочим окном
end

привязываюсь к окну. Выполняю некоторые действия. И теперь я хочу привязаться к другому окну.
Код
local h = findwindow("FireFox")  -- ну к примеру начало такое
if h then                        -- если найдено
    workwindow (h[1][1])         -- сделать его рабочим окном
    log("Перепривязка")
end

Никаких ошибок не выдаёт и даже показывает, что условие отработало, т.к. появляется надпись Перепривязка. И вот теперь беру и пытаюсь узнать полное название окна через workwindow:
Код
title_window = getwindowtext (workwindow())
log("Окно: " .. title_window)

И он мне показывает: Блокнот

Т.е. перепривязываться не хочет.
Это касяк? Или я чего-то не верно делаю?

Может быть есть какая-то команда "отвязаться" (ну типа обратка Ctrl+A), а уже потом делать новую привязку?

Всё работает

Дело в том, что для привязки я создал отдельную процедуру и в ней вместо.
Код
local h = findwindow("Блокнот")

было просто
Код
h = findwindow("Блокнот")

Т.о. переменная становилась глобальной и почему-то при следующем обращении к процедуре, не меняла своего значения. Как только я поставил local всё стало работать, как надо.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 27.4.2019, 1:37
Сообщение #2


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26702
Пользователь №: 16.971
Возраст: 29



Должно быть нормально, так напишет?:
Код
--lua
log "clear" log "mode compact"
local h = findwindow("Блокнот")  -- найти окно блокнота
if h then                        -- если найдено
    workwindow (h[1][1])         -- сделать его рабочим окном
    log(getwindowtext (workwindow()))
end

h = findwindow("Pilot")  
if h then                        -- если найдено
    workwindow (h[1][1])         -- сделать его рабочим окном
    log(getwindowtext (workwindow()))
end

Цитата
Может быть есть какая-то команда "отвязаться"

Код
workwindow(0)

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
zumas
сообщение 27.4.2019, 1:53
Сообщение #3


**

Neophyte
Сообщений: 15
Регистрация: 16.4.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.295
Возраст: 38



Цитата(cirus @ 27.4.2019, 1:37) *

Код
workwindow(0)



Спасибо за такой быстрый и так сказать "ночной" ответ. Не ожидал!
А за вышенаписанный код для отвязки отдельное спасибо. Пригодиться.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 19.4.2024, 10:42
Designed by Nickostyle