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

> Вопрос по массивам и окнам
sel
сообщение 13.11.2018, 15:08
Сообщение #1


**

Neophyte
Сообщений: 32
Регистрация: 4.7.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 18.986
Возраст: 27



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

Выглядит примерно так:

set %handle FindWindow ("Игра")
set #f 1
while (#f = 1)
for #i 1 size(%handle)
...
скрипт
...
end_for
end_while

Иногда случается так, что окно с игрой крашится с ошибкой, и скрипт заводит обратно вылетевшее окно с новым хендлом, в этом основная загвоздка, если бы не это обстоятельство то я бы мог записывать в массив %handle [#i 3] допустим цифру 0 если окно вылетело и проводить в цикле ещё один цикл for который бы складывал значения в столбце %handle [#i 3] и если оно будет равняться 0 то скрипт начнёт заводить все окна, но из за краша окон добавляется новая строчка в массиве с новым хендлом.

Задача - определить, что вылетели все окна игры, есть идеи как это можно сделать?
Заранее спасибо за ответ.

p.s. определить какое окно вылетело с ошибкой трудно, может вылететь абсолютно любое, всё что есть это хендл окна.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
sutra
сообщение 28.2.2019, 3:32
Сообщение #2


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



Цитата
2гб и вылет.
Ну хоть что-то, я тоже думал на эту тему. Всё-таки 32-х разрядное приложение. По логике 32 разряда + отрицательные значения, так и получается 2 ГБ.


Цитата
и вижу 35-40 копий игры
Вот просто на 100% уверен, что-то у Вас неправильно анализируется. Сегодня голова уже не варит. Если не сможете решить вопрос сами и Гуру не помогут, давайте свой код, убью час времени - решу вопрос. Давать своё, как-то вроде не в тему, дайте кусок своего кода, только не придуманный, а рабочий, так будет быстрее. Дадите придуманный, ну посмотрим и придуманный. Только я не сижу на форуме сутками, можем долго решать проблему.


Просто я пересел на lua и реально забыл Пилотовский язык. Сходу не получается, надо вникать ...

Просто на виртуальных примерах, мы даём "общее" решение проблемы, но возможно частное решение окажется более простым и эффективным. Ну вот Вы пытаетесь что-то сделать с якобы существующим окном. Так ведь можно именно это окно проверить, существует ли оно и если оно вылетело ... СРАЗУ решить проблему, а не лопатить все окна. Ну думаю Вы поняли мою мысль. Перед тем как что-то делать в окне (ведь его хендл у нас уже есть) можно проверить существование в реальности этого окна.

Ну просто масса частных вариантов решения проблемы. Надо сделать просто, понятно, надёжно - и это 100% возможно.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sel
сообщение 5.3.2019, 10:10
Сообщение #3


**

Neophyte
Сообщений: 32
Регистрация: 4.7.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 18.986
Возраст: 27



Цитата(sutra @ 28.2.2019, 5:32) *

Ну хоть что-то, я тоже думал на эту тему. Всё-таки 32-х разрядное приложение. По логике 32 разряда + отрицательные значения, так и получается 2 ГБ.
Вот просто на 100% уверен, что-то у Вас неправильно анализируется. Сегодня голова уже не варит. Если не сможете решить вопрос сами и Гуру не помогут, давайте свой код, убью час времени - решу вопрос. Давать своё, как-то вроде не в тему, дайте кусок своего кода, только не придуманный, а рабочий, так будет быстрее. Дадите придуманный, ну посмотрим и придуманный. Только я не сижу на форуме сутками, можем долго решать проблему.
Просто я пересел на lua и реально забыл Пилотовский язык. Сходу не получается, надо вникать ...

Просто на виртуальных примерах, мы даём "общее" решение проблемы, но возможно частное решение окажется более простым и эффективным. Ну вот Вы пытаетесь что-то сделать с якобы существующим окном. Так ведь можно именно это окно проверить, существует ли оно и если оно вылетело ... СРАЗУ решить проблему, а не лопатить все окна. Ну думаю Вы поняли мою мысль. Перед тем как что-то делать в окне (ведь его хендл у нас уже есть) можно проверить существование в реальности этого окна.

Ну просто масса частных вариантов решения проблемы. Надо сделать просто, понятно, надёжно - и это 100% возможно.

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

Сообщений в этой теме
sel   Вопрос по массивам и окнам   13.11.2018, 15:08
sutra   Эту строку помести в while если тормозов не будет...   13.11.2018, 15:20
sutra   После анализа массива ненужный элемент можно удали...   13.11.2018, 17:46
sel   Есть где то примеры анализа массивов? Массив приме...   13.11.2018, 18:05
sutra   Я не совсем понял что именно надо. Смысл примерно ...   13.11.2018, 18:27
sutra   Можно отсортировать оба массива, тогда наверное ещ...   13.11.2018, 18:55
sel   Можно отсортировать оба массива, тогда наверное е...   13.11.2018, 19:39
DarkMaster   Его выдает винда при создании окна и он никак не ...   13.11.2018, 20:17
sutra   Опиши подробнее. Скрипт заводит или игра сама соз...   13.11.2018, 23:00
sutra   Ты можешь присвоить окну свой порядковый номер se...   13.11.2018, 23:11
cirus   Скобки не нужны. Тоже самое: set %handleold %han...   14.11.2018, 2:23
sel   Придумал более интересный способ определения вылет...   15.12.2018, 1:34
cirus   Откуда это? Запустить любое количество окон, в и...   15.12.2018, 2:40
sutra   Видимо проблема определения вылетевших окон не реш...   15.12.2018, 4:26
sel   В общем написал преемлемый для меня вариант(есть с...   17.12.2018, 16:16
sutra   Количество окон игры должно быть постоянным? или м...   15.12.2018, 4:59
sutra   Про ошибку конкретного примера кода уже более опыт...   15.12.2018, 5:14
DarkMaster   раньше пилотовский синтаксис отказывался восприни...   15.12.2018, 5:47
sutra   Ну на 100% не вникал, но логика правильная, если в...   17.12.2018, 18:22
sel   Итак, у меня новый затуп, пытаюсь красиво сохранят...   23.12.2018, 4:28
DarkMaster   [code]local write, writeIndent, writers, refCount;...   23.12.2018, 5:36
cirus   Дописывать пробелы в конец строки, чтобы все были...   23.12.2018, 5:39
sutra   Я бы порекомендовал использовать табуляцию. Прост...   23.12.2018, 13:10
DarkMaster   Проблема в том, что текстовые редакторы табуляцию...   23.12.2018, 13:41
sutra   Да вариантов полно, табуляция - это просто выравни...   23.12.2018, 14:08
sutra   Если конечно установлен эксель. Выбираешь вкладку ...   23.12.2018, 14:33
sel   Ииии, мне снова нужна ваша помощь друзья:) Проблем...   29.12.2018, 0:48
cirus   В папке с пилотом Scripts\Backup. Ищите рабо...   29.12.2018, 1:22
sutra   Ну если быстро (чисто для Вашего случая) не вникая...   29.12.2018, 3:29
sel   По прежнему сталкиваюсь всё с той же проблемой, ес...   28.2.2019, 0:26
cirus   Возможно в этом проблема. Попробуйте не использов...   28.2.2019, 1:34
sutra   Тоже хотел сказать про это, но и это не главное. И...   28.2.2019, 1:55
sel   Я вроде даже где-то 100% рабочий пример давал с ...   28.2.2019, 2:58
sutra   Подпрограмма в Пилоте - это собственно goto на мет...   28.2.2019, 2:27
sutra   findwindow ищет окна в том порядке, в котором они ...   28.2.2019, 2:47
cirus   2гб и вылет.   28.2.2019, 3:04
sutra   Голову на отсечение конечно давать не буду. Но иск...   28.2.2019, 3:42
sutra   Вот без всякого хвастовства говорю (хотя гордость ...   28.2.2019, 3:55
DarkMaster   gosub работает полностью корректно с циклами при ...   28.2.2019, 14:00
sel   Возникло несколько вопросов: 1. Можно ли команду l...   4.5.2019, 13:45
cirus   Нет, только txt.   4.5.2019, 14:06


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

 

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