Перейти к содержанию

Автоматический поиск процесса не работает.


Submarina

Рекомендуемые сообщения

Я извиняюсь, за то что раньше времени попросил закрыть тему, про поиск правильного процесса, вроде всё работало но оказалось не всё.

Проблема в том что когда открываешь Cheat Engine, а после запускаешь игру arma3.exe, в Cheat Engine Автоматический находится процесс arma3.exe это правильно.

А вот когда запускаешь arma3_x64.exe, то в Cheat Engine процесс arma3_x64.exe не находится автоматически, то есть процесс arma3_x64.exe в ручную надо цеплять к Cheat Engine..

Из за этого функции в таблице не работают, пока вручную не прицепишь процесс игры к Cheat Engine.

Не код который дал What228, не код который дал MasterGH, не находить второй процесс это arma3_x64.exe Автоматически в Cheat Engine. 

Почему так происходит, помогите разобраться.

 

What228 я добавил только таймер в него.

Скрытый текст

form_show(UDF1)
function CETimer1Timer(sender)
if getProcessIDFromProcessName("arma3.exe")  ~= nil then ---Находить процесс Автоматически в Cheat Engine
UDF1.CELabel1.Caption = "arma3.exe" --------------Находить процесс Автоматически в Cheat Engine
UDF1.CEButton1.Enabled = true
UDF1.CEButton2.Enabled = true
else
UDF1.CELabel1.Caption = "WAIT"
UDF1.CEButton1.Enabled = false
UDF1.CEButton2.Enabled = false
if getProcessIDFromProcessName("arma3_x64.exe")  ~= nil then--------Не находит процесс Автомитически в Cheat Engine
UDF1.CELabel2.Caption = "arma3_x64.exe"--------Не находит процесс Автомитически в Cheat Engine
UDF1.CEButton3.Enabled = true
UDF1.CEButton4.Enabled = true
else
UDF1.CELabel2.Caption = "WAIT X64"
UDF1.CEButton3.Enabled = false
UDF1.CEButton4.Enabled = false
end
end
end

 

Вот код код дал MasterGH

Скрытый текст

local ProcessNames = 
{
  "arma3.exe",--------------Находить процесс Аатоматически в Cheat Engine
  "arma3_x64.exe"--------Не находит процесс Автомитически в Cheat Engine
  -- может быть еще одно название процесса
}
 
function CETimer1Timer(sender)

  local attachToProcess = false
  
  for i = 1, #ProcessNames do
    if getProcessIDFromProcessName(ProcessNames[i]) ~= nil then
      attachToProcess = true
      UDF1.CELabel20.Font.Color = 0xFFFFFF
      UDF1.CELabel20.Caption = ProcessNames[i]
      break
    end
  end
  
  if not attachToProcess then
    UDF1.CELabel20.Font.Color = 0x423A35C7
  end
  
end

 

 

Изменено пользователем Submarina
Ссылка на комментарий
Поделиться на другие сайты

1 час назад, Submarina сказал:

Почему так происходит, помогите разобраться.

Если вот так:

покатит, то вот скрипт:

Скрытый текст

form_show(UDF1)
function CETimer1Timer(sender)
  if getProcessIDFromProcessName("Tutorial-i386.exe") == nil then
    UDF1.CELabel1.Caption = "Запустите игру"
    UDF1.CEButton1.Enabled = false
    UDF1.CEButton2.Enabled = false
    if getProcessIDFromProcessName("Tutorial-x86_64.exe") == nil then
      UDF1.CELabel2.Caption = "Запустите игру"
      UDF1.CEButton3.Enabled = false
      UDF1.CEButton4.Enabled = false
    else
      OpenProcess("Tutorial-x86_64.exe")
      UDF1.CELabel2.Caption = "Играем в Tutorial-x86_64"
      UDF1.CEButton3.Enabled = true
      UDF1.CEButton4.Enabled = true
    end
  else
    OpenProcess("Tutorial-i386.exe")
    UDF1.CELabel1.Caption = "Играем в Tutorial-i386"
    UDF1.CEButton1.Enabled = true
    UDF1.CEButton2.Enabled = true
  end
end

 

 

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

Твой код рабочий, но только в Tutorial-i386.exe Tutorial-x86_64.exe. А когда дело доходит до игры то не работает. Точней работает, только один процесс, а второй вручную надо цеплять к Cheat Engine.

Та же проблема, что и у тех двух кодов.

Изменено пользователем Submarina
Ссылка на комментарий
Поделиться на другие сайты

Я просто в ставил твой код, поменял только процесс с  Tutorial-i386.exe на arma3.exe и проверил на игре, а не на Tutorial-i386.exe таблица пустая там нет не чего, просто твой код твой, с заменённым процессом.

Ошибиться я не мог.

Изменено пользователем Submarina
Ссылка на комментарий
Поделиться на другие сайты

Да у тебя работает вижу. Но я Игорь на пустой таблице проверяю как и ты, у меня второй процесс не в какую не хочет цепляться к Cheat Engine.

Странно.

Ссылка на комментарий
Поделиться на другие сайты

4 минуты назад, Submarina сказал:

Вот таблица но я думаю не поможет.http://dropmefiles.com/C6xKX

Попробуй:

Скрытый текст

form_show(UDF1)
function CETimer1Timer(sender)
  if getProcessIDFromProcessName("farcry3.exe") == nil then
    UDF1.CELabel1.Caption = "Запустите игру"
    UDF1.CEButton1.Enabled = false
    UDF1.CEButton2.Enabled = false
    if getProcessIDFromProcessName("farcry3_d3d11.exe") == nil then
      UDF1.CELabel2.Caption = "Запустите игру"
      UDF1.CEButton3.Enabled = false
      UDF1.CEButton4.Enabled = false
    else
      OpenProcess("farcry3_d3d11.exe")
      UDF1.CELabel2.Caption = "Играем в farcry3_d3d11"
      UDF1.CEButton3.Enabled = true
      UDF1.CEButton4.Enabled = true
    end
  else
    OpenProcess("farcry3.exe")
    UDF1.CELabel1.Caption = "Играем в farcry3"
    UDF1.CEButton1.Enabled = true
    UDF1.CEButton2.Enabled = true
  end
end

 

 

Ссылка на комментарий
Поделиться на другие сайты

Вот так код, тоже прекрасно работает.

Скрытый текст

form_show(UDF1)
function CETimer1Timer(sender)
  if getProcessIDFromProcessName("farcry3.exe") == nil then
    if getProcessIDFromProcessName("farcry3_d3d11.exe") == nil then
    else
    OpenProcess("farcry3_d3d11.exe")
    end
  else
    OpenProcess("farcry3.exe")
  end
end
end

 

 

Ссылка на комментарий
Поделиться на другие сайты

49 минут назад, Submarina сказал:

Вот так код, тоже прекрасно работает.

Baracuda, ты что прикалываешься? :D Ну так это же тот же код, ты просто строчки про кнопки и лейблы убрал.

Ссылка на комментарий
Поделиться на другие сайты

1 минуту назад, Submarina сказал:

Ты это к чему, да просто убрал строчки и что.

В чём я прикалываюсь.

Ну ок! По-видимому я так и не научился тебя до конца понимать.;)

Ссылка на комментарий
Поделиться на другие сайты

Я строчки убрал и проверил работало нормально, и выложил всё.

Если тебе не нравится удали, какие проблемы. Проблем та нет.

Изменено пользователем Submarina
Ссылка на комментарий
Поделиться на другие сайты

1 час назад, what228 сказал:

А где у него ошибка была? ( Не хочу качать с левых источников )

 

Извини пропустил пост, ошибка была тут:

Скрытый текст

OpenProcess("farcry3_d3d11") // сделал ему OpenProcess("farcry3_d3d11.exe")

 

 

Ссылка на комментарий
Поделиться на другие сайты

Ошибка не в это была, я забыл дописать, я когда проверял всё нормально было. 

У тебя код другой, ты сравни то что мене дал, и что мене давали What228 и MasterGH.

Я конечно также плохо понимаю Lua, но те коды не работали как мене надо было.

Изменено пользователем Submarina
Ссылка на комментарий
Поделиться на другие сайты

26 минут назад, Submarina сказал:

Ну кому то легко, а кому то тяжело, это тоже понимать надо.

А ты думаешь другим легко, потому что они от рождения такие одаренные, или что? Типа родился и сразу пошел на луа/цпп/и_тд кодить, трейнеры заколачивать?

Тут все - самоучки. Закаленные упорным трудом самоучки. Все брали и читали, а НЕЗНАНИЕ чего-либо наоборот должно подстегивать тебя.

Берешь, открываешь доки по интересующей тебя теме и всё подробно читаешь. Потом применяешь это в своей задаче.

Вбиваем в гугл: cheat engine lua

Открываешь первую же ссылку - это википедия по Cheat Engine Lua.

http://wiki.cheatengine.org/index.php?title=Lua

В заголовке "Process" видим кучу интересных функций, одна из них:

http://wiki.cheatengine.org/index.php?title=openProcess

function openProcess(processname)
function openProcess(processid)

Думаю по названию аргументов не трудно догадаться, как вызывать эту функцию: либо отдаешь ей имя процесса, либо его ID

Ну или читаешь на той же странице чуть ниже описание:

processname	String	The processname to find and open
processid	integer	The processID to find and open

Но мы видим, что нигде не говорится про возвращаемое значение. Значит, мы не можем проверить открылся ли процесс или нет.

Поэтому мысль наводит на функцию getProcessIDFromProcessName, которая, кстати, в том же заголовке "Process". Как бы далеко идти и не надо:

http://wiki.cheatengine.org/index.php?title=getProcessIDFromProcessName

function getProcessIDFromProcessName(processname)

Описание:

returns the processID. Returns nil if not found

Отлично. Либо айди процесса, либо nil, если ничего не нашло.

???

С таймером ты уже знаком. Если нет, то опять же ищем его на той же странице википедии:

http://wiki.cheatengine.org/index.php?title=Timer

Помимо всего прочего, видим там интересный метод setEnabled.

Значит таймер можно выключить после того как мы прицепимся к процессу, чтоб не работал зря.

sender.setEnabled( false )

И что, это - сложно? Я никогда в жизни не писал в Cheat Engine на Lua и разобрался со всем этим за пять минут, потому что знаю что такое документация. Потому что в свое время я понял, что вечно задавать идиотские вопросы окружающим - неприлично, пора бы самому начать пытаться разобираться со своими вопросами, особенно когда ответы на них уже где-то лежат.

Просто сами поймите мой баттхерт, на форуме сидят опытные люди в реверсе, которые могут помочь в этом нелегком деле, поделиться опытом и тд, потому что тут нет никаких доков. Нет, видите ли, книжек по взлому CSS или других игр. И вот эти обсуждения (по взлому) реально ценны. А что имеем в итоге? Два дня на форуме в топе висит тема по поиску процесса в Cheat Engine Lua, который гуглится за пару минут.

Изменено пользователем uhx
стилистика
  • Плюс 2
Ссылка на комментарий
Поделиться на другие сайты

Да, я понимаю, что есть совсем зеленые новички и все такое, которым и с доками тяжело совладать.

Но куда интересней помогать человеку, где он описывает проделанную работу, что вот он где-то постарался, но чего-то у него не получилось, не вышло, и вот пришлось темку создать, чтобы прояснить какие-то моменты.

А обычно это происходит так: вот у меня есть какой-то непонятный скопиписженный код и мне надо чтоб он работал вообще по другому. Вперед, дерзайте.

Ссылка на комментарий
Поделиться на другие сайты

1 минуту назад, Submarina сказал:

Скажи пожалуйста uhx, а ты какие языки знаешь, и сколько лет. 

Русский, немного английский и пару матерных на немецком.

Возраст не скажу.

  • Плюс 3
Ссылка на комментарий
Поделиться на другие сайты

  • Garik66 закрыл тема
Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.