Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


Multiple processes of the same name

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine
View previous topic :: View next topic  
Author Message
ToKENIZoR
How do I cheat?
Reputation: 0

Joined: 28 Jan 2013
Posts: 3

PostPosted: Mon Jan 28, 2013 10:19 pm    Post subject: Multiple processes of the same name Reply with quote

I've recently picked up L.A. Noire from the back of my shelf again, and decided to do something about the 30fps cap. Cheat Engine gives me the power to do so, and I'm trying to create a basic trainer to shift between 30 and 60fps for personal use.

However, the trainer won't always work. It's quite random actually. While I'm in no way an expert on this matter, I think that the trainer can't figure out which process to target, as L.A. Noire has 2 processes running under the same name, for whatever reason. Only 1 of them is attached to the main window though.

Is there some way I can make the trainer figure out which one of them it is?

Any help will be greatly appreciated.
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 458

Joined: 09 May 2003
Posts: 25288
Location: The netherlands

PostPosted: Tue Jan 29, 2013 1:44 am    Post subject: Reply with quote

The trainer picks the newest process with the specific name. If the trainer sees the old one before the new one has been created it'll open the wrong one.
So try to make it that you only run the trainer after the game has fully loaded

Alternatively, learn lua and use a timer that constantly opens the newest process until it has verified that the current process is correct (by checking some bytes)

_________________
Do not ask me about online cheats. I don't know any and wont help finding them.

Like my help? Join me on Patreon so i can keep helping
Back to top
View user's profile Send private message MSN Messenger
ToKENIZoR
How do I cheat?
Reputation: 0

Joined: 28 Jan 2013
Posts: 3

PostPosted: Tue Jan 29, 2013 2:52 am    Post subject: Reply with quote

Alright, I didn't know that. I've got some experience with LUA from Gmod, so I'll definitely explore my options here.

Thank you for your reply. Very Happy
Back to top
View user's profile Send private message
mgr.inz.Player
I post too much
Reputation: 218

Joined: 07 Nov 2008
Posts: 4438
Location: W kraju nad Wisla. UTC+01:00

PostPosted: Tue Jan 29, 2013 11:03 am    Post subject: Reply with quote

As DB wrote. Do timer thing.

If there are always two processes with the same name. And the newest one is the right one, use script below instead of strings_add(getAutoAttachList(), "processname")

Example, it opens second calc.exe:
Code:
processname = 'calc.exe'

function openRightProcess()
  local processlist=createStringlist()
  local count=0
  local entry=nil
  local name=nil

  getProcesslist(processlist)

  for i=0,strings_getCount(processlist)-1 do
    entry = strings_getString(processlist,i)
    name = entry:sub(10)
    if name == processname then count = count + 1 end
  end
  object_destroy(processlist)

  if count==2 then
    timer_setEnabled(timer1,false)
    openProcess(processname)
  end

end

if timer1~=nil then object_destroy(timer1);timer1=nil;end --not needed in final release

timer1 = createTimer(nil,false)
timer_onTimer(timer1,openRightProcess)
timer_setInterval(timer1,1000)
timer_setEnabled(timer1,true)






Edit:
added more universal function. Just in case someone finds this topic.
Code:
function openRightProcess(processname, howmanyprocesses, whichprocess)

  local processlist=createStringlist()
  local processnameLower = processname:lower()

  local timer = createTimer(nil)
  timer.Interval = 100
  timer.OnTimer =
  function (t)
    local tmp={}
    getProcesslist(processlist)
    for i=0,processlist.Count-1 do
      if processlist[i]:sub(10):lower() == processnameLower
        then tmp[1+#tmp]=processlist[i] end
    end

    if #tmp>=howmanyprocesses then
      processlist.destroy()
      t.destroy()
      openProcess(tonumber(tmp[whichprocess]:sub(1,8),16))
    end
  end

end


-- openRightProcess(string processname, integer howmanyprocesses, integer whichprocess)
-- howmanyprocesses = 2 means it will wait for 2 processes with the same name
-- whichprocess = 1 means first one, whichprocess = 2 means second one

openRightProcess('calc.exe',2,2)

_________________


Last edited by mgr.inz.Player on Fri Jul 15, 2016 9:58 am; edited 1 time in total
Back to top
View user's profile Send private message MSN Messenger
ToKENIZoR
How do I cheat?
Reputation: 0

Joined: 28 Jan 2013
Posts: 3

PostPosted: Thu Jan 31, 2013 10:06 am    Post subject: Reply with quote

mgr.inz.Player wrote:
As DB wrote. Do timer thing.

If there are always two processes with the same name. And the newest one is the right one, use script below instead of strings_add(getAutoAttachList(), "processname")

Example, it opens second calc.exe:


Sorry for the late answer, but I do really appreciate your help. Thank you. Smile
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites