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

 
Ответить в эту темуОткрыть новую тему
> Новая версия, не запускаеться
Vik_777
сообщение 3.2.2019, 13:11
Сообщение #1


**

Neophyte
Сообщений: 48
Регистрация: 3.10.2016
Группа: Пользователи
Наличность: 0
Пользователь №: 18.140
Возраст: 40



Release
31.12.2018 v2.41
скачал попробовал запустить от админа
ругаеться WIN10 добавил в искл. не ругаеться но и не запускаеться что делать.Прикрепленное изображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 3.2.2019, 14:15
Сообщение #2


**********

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



Отключить антивирусник, скачать пилот, добавить в исключения exe и процесс пилота. Включить антивирусник.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Vik_777
сообщение 5.2.2019, 13:30
Сообщение #3


**

Neophyte
Сообщений: 48
Регистрация: 3.10.2016
Группа: Пользователи
Наличность: 0
Пользователь №: 18.140
Возраст: 40



вот голову сломал как сделать если окна не сушествует
то пропускать его и ничего не делать. в таком вот варианте.

load_array %port C:\1\okna.txt
for #i 1 size(%port)

if окно есть работаем > 0 // сдесь как бы прописать хендл окна если есть то будет больше 0

left 655,815 %port [#i] // ПОРТУЕМСЯ // что то делаем //
wait 200

end_if // иначе пропускаем

end_for
end_script

Заранее спасибо
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 5.2.2019, 13:36
Сообщение #4


**********

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



Код
set #h findwindow("Блокнот")
if #h = 0
    log Окна нет
else
    log Окно есть
end_if
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Vik_777
сообщение 5.2.2019, 13:56
Сообщение #5


**

Neophyte
Сообщений: 48
Регистрация: 3.10.2016
Группа: Пользователи
Наличность: 0
Пользователь №: 18.140
Возраст: 40




[code]set #h findwindow("Блокнот")
if #h = 0

нет нет нет с этим все понятно я так и делаю
set #MICT findwindow ("Мaньka")
set workwindow #MICT
if #MICT > 0
showwindow TOP
wait 200
call НИП1
end_if

но мне хедл надо как то в цикле смотреть
тоесть я по очереди

load_array %port C:\1\okna.txt // то есть в массив %port закачал хендлы

for #i 1 size(%port)

*********************************************************
а тут хочу проверить есть окно или нет и работать с ним или нет
перебирая все окна в моем случае их десять
типа
if #хендл текушего окна > 0
то работаю нет то на выход
********************************************************

left 655,815 %port [#i] // ПОРТУЕМСЯ

end_if
end_for


end_script


Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 5.2.2019, 14:14
Сообщение #6


*******

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



Цитата
// то есть в массив %port закачал хендлы
Да их надо искать, а не закачивать. Они же каждый раз разные. Закачивать надо названия окон ("Манька"). Вот эти имена в цикле и надо искать findwindow


Код

for #i 1 size(%port)
  set #handle findwindow(%port[#i])
  if #handle > 0
  // ..... окно найдено, с ним работаем
    else
      break // прерывание цикла ... так сказать "на выход".
  end_if
end_for

handle - подправил без массива проще и понятнее. Если хендлы нужны для дальнейшего использования в произвольном порядке, тогда лучше их сделать массивом.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 5.2.2019, 15:03
Сообщение #7


*******

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



Опять же исходим из того, что названия окон уникальные, то есть должно быть найдено именно ОДНО окно, иначе понадобится использование конструкции %handle.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Vik_777
сообщение 5.2.2019, 15:07
Сообщение #8


**

Neophyte
Сообщений: 48
Регистрация: 3.10.2016
Группа: Пользователи
Наличность: 0
Пользователь №: 18.140
Возраст: 40



Вот уже рядом
с утра я загружаю от 5 до 10 персов и определяю окна
save_array %okn C:\1\okna.txt
см рис.
если я не выхожу ими из игры то номера хендлов постоянно эти.
и мне просто нужно посмотреть в игре окно данного перса или нет.
то есть больше 0 то танцуем нет пропускаем.

load_array %port [1] C:\1\okna.txt
for #i 1 size(%port)
set %handle[#i] findwindow(%port[#i])
if %handle[#i] > 0
set workwindow %port [#i]
hint (18 clRed 380 600(%handle[#i])) //пытаюсь тут глянуть что мы имеем
left 655,815 %port [#i] // ПОРТУЕМСЯ // если все верно то 8 персов нажмут кл 2 нет
end_if
end_for
end_script

но что то подсказывает мне что где то тут не точно (IMG:style_emoticons/default/unsure.gif)
Прикрепленное изображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 5.2.2019, 16:28
Сообщение #9


*******

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



Я понял. Ты пытаешься найти окно по хендлу - это неверно. Сейчас попробую нарисовать как надо.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 5.2.2019, 17:15
Сообщение #10


*******

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



Код
log clear
// Открываю несколько окон Блокнота
set %port findwindow("Блокнот")  // ищу все окна
save_array %port C:\!окна.txt    // сохраняю все параметры поиска
wait 7000                        // пауза - закрываю одно или несколько окон Блокнота
load_array %port C:\!окна.txt    // загружаю как было
for #i 1 size(%port)
  set %portNEW findwindow("Блокнот") // ищу по новой все окна
  set #check                         // параметр проверки (предполагаем что не найдёт
  set #j 1
  while #check = 0 and #j <= size(%portNEW)
    if %port[#i 1] = %portNEW[#j 1]
        log "найдено - " %portNEW[#j 1]
        set #check 1
    end_if
    set #j #j + 1
  end_while
  if #check = 0
      log "НЕ найдено - " %port[#i 1]
  end_if
end_for
end_script
Сорри - отвлекли. Ну примерно вот так. Вместо Блокнота - подставляй своё имя игры.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 5.2.2019, 18:31
Сообщение #11


*******

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



Если у тебя все окна с абсолютно разными названиями и не ищутся одним вызовом findwindow, то и это не беда. Когда заводишь окна их все можно переименовать, добавив уникальное название, например MyGame.
Код
log clear
// Открываю несколько окон Блокнота
set %port findwindow("Блокнот")  // ищу все окна
set $NewName %port[1 2]MyGame    // добавляю к первому блокноту имя MyGame
set #handle  %port[1 1]          // это хендл - его в следующий оператор только так подставлять
set #a SetWindowtext (#handle $NewName) // - переименовали
// потом искать так findwindow("MyGame")
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Vik_777
сообщение 5.2.2019, 22:07
Сообщение #12


**

Neophyte
Сообщений: 48
Регистрация: 3.10.2016
Группа: Пользователи
Наличность: 0
Пользователь №: 18.140
Возраст: 40



Спасибо огромное за советы я вроде решил задачу.
Я так и делаю даю разным окнам игры уникальный названия. игрок1,,,,до игрок10
:okna
set #SIN findwindow ("игрок1")
set #BAP findwindow ("игрок2")
set #KOS findwindow ("игрок3")
set #TIG findwindow ("игрок3")
set #mag findwindow ("игрок5")
set #STR findwindow ("игрок6")
set #DRY findwindow ("игрок7")
set #SHAM findwindow ("игрок8")
set #MICT findwindow ("игрок9")
set #LUK findwindow ("игрок10")
set %okn [1 1] #SIN
set %okn [2 1] #BAP
set %okn [3 1] #KOS
set %okn [4 1] #TIG
set %okn [5 1] #mag
set %okn [6 1] #STR
set %okn [7 1] #DRY
set %okn [8 1] #SHAM
set %okn [9 1] #MICT
set %okn [10 1] #LUK
save_array %okn C:\1\okna.txt
hint (22 clRed 700 50 (ОКНА ОПРЕДЕЛЕНЫ))
wait 900
return


и вот дошло до меня это

load_array %pers C:\1\okna.txt
for #i 1 size(%pers)
set workwindow %pers [#i]
if %pers [#i] > 0
hint (18 clRed 380 600(работаем %pers [#i]))
wait 1000
end_if
end_for
end_script

просто с синтаксисом команд у меня плохо





Эскизы прикрепленных изображений
Прикрепленное изображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 6.2.2019, 0:58
Сообщение #13


*******

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



Цитата
set #SIN findwindow ("игрок1")set #BAP findwindow ("игрок2")set #KOS findwindow ("игрок3")set #TIG findwindow ("игрок3")set #mag findwindow ("игрок5")set #STR findwindow ("игрок6")set #DRY findwindow ("игрок7")set #SHAM findwindow ("игрок8")set #MICT findwindow ("игрок9")set #LUK findwindow ("игрок10")set %okn [1 1] #SINset %okn [2 1] #BAPset %okn [3 1] #KOSset %okn [4 1] #TIGset %okn [5 1] #magset %okn [6 1] #STRset %okn [7 1] #DRYset %okn [8 1] #SHAMset %okn [9 1]
#MICTset %okn [10 1] #LUK
save_array %okn C:\1\okna.txt
Да вот это всё можно сделать в 2 строки :

Код
set %okn findwindow("игрок")
save_array %okn  C:\1\okna.txt

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


*******

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



Так, как сделано у Вас вообще анализируется просто, можно сильно упростить мой пример. И Вы в любой момент можете получить кроме хендла и № игрока. Если сделаете сохранение как я только что показал, у Вас будет двумерный массив. Вы можете получить № игрока так:
Код
log clear
set %port[1 2] "игрок10"
set #a string_digits(%port[1 2])
log #a
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 6.2.2019, 1:53
Сообщение #15


**********

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



Цитата
set %okn [1 1] #SIN
set %okn [2 1] #BAP
set %okn [3 1] #KOS
set %okn [4 1] #TIG
set %okn [5 1] #mag
set %okn [6 1] #STR
set %okn [7 1] #DRY
set %okn [8 1] #SHAM
set %okn [9 1] #MICT
set %okn [10 1] #LUK
save_array %okn C:\1\okna.txt
end_script

Тоже самое, только короче:
Код
init_arr %okn #SIN #BAP #KOS #TIG #mag #STR #DRY #SHAM #MICT #LUK
save_array %okn C:\1\okna.txt
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Vik_777
сообщение 6.2.2019, 9:11
Сообщение #16


**

Neophyte
Сообщений: 48
Регистрация: 3.10.2016
Группа: Пользователи
Наличность: 0
Пользователь №: 18.140
Возраст: 40



Цитата(sutra @ 6.2.2019, 0:58) *

Да вот это всё можно сделать в 2 строки :

Код
set %okn findwindow("игрок")
save_array %okn  C:\1\okna.txt



Нет у меня так не получиться так как игрок1...10
это только пример названия окон
на самом деле окно названы по имени персов и все разные /..../
обшего в названии у них нет

Цитата(cirus @ 6.2.2019, 1:53) *

Тоже самое, только короче:
Код
init_arr %okn #SIN #BAP #KOS #TIG #mag #STR #DRY #SHAM #MICT #LUK
save_array %okn C:\1\okna.txt
end_script



А вот это сразу в дело спасибки.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 6.2.2019, 11:08
Сообщение #17


*******

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



Цитата
на самом деле окно названы по имени персов и все разные /..../обшего в названии у них нет
Так я с самого начала говорил, что можно добавить (хоть в начало, хоть в конец)ОБЩЕЕ название окон. Конечно если количество окон строго фиксировано, тогда нет проблем, просто вместо одной строки поиска у Вас будет 10, ну или в цикле перебирать используя массив. Но как любит делать Дарк, лучше делать сразу на перспективу. Кто знает, может Вы потом что-то будете совершенствовать и у Вас должен быть простой способ обращаться к любому окну, хоть по хендлу, хоть по имени персонажа.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Vik_777
сообщение 6.2.2019, 12:02
Сообщение #18


**

Neophyte
Сообщений: 48
Регистрация: 3.10.2016
Группа: Пользователи
Наличность: 0
Пользователь №: 18.140
Возраст: 40



Ясно. но так сложилось у меня давно с окнами персов / названия/
надо много перелопачивать но учту всяко.
хотя если добавить скажем pw_dark то pw_ уже и нормально/ хз пока не готов
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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