Difference between revisions of "Lua:process"

From Cheat Engine
Jump to navigation Jump to search
(Major overhaul of the post.)
 
(16 intermediate revisions by 3 users not shown)
Line 1: Line 1:
== process ==
+
[[Category:Lua]]
 +
{{CodeBox|'''variable''' process ''':''' string}}
  
 +
Contains the main module name of the currently opened process.
  
 +
===Value===
 +
String — The main module name of the currently opened process.
  
; process
+
If no process is opened, this variable may be empty or not point to a readable module base.
: A variable that contains the main module name of the currently opened process
 
  
 +
===Examples===
  
-----------------------------------------
+
====Print the current process module name====
 +
<syntaxhighlight lang="lua" line highlight="1">
 +
print(process)
 +
</syntaxhighlight>
  
 +
====Check whether Cheat Engine is attached====
 +
<syntaxhighlight lang="lua" line highlight="1">
 +
local attached = readInteger(process) ~= nil
  
When '''not attached''' to any process:
+
print("Attached: " .. tostring(attached))
 +
</syntaxhighlight>
  
Code:
+
====Use process as a module base====
  print(type(process))
+
<syntaxhighlight lang="lua" line highlight="1">
  print(process)
+
local base = getAddress(process)
  print('Attached to ' .. (process or 'NOTHING'))
 
  if process then
 
    print('attached')
 
  else
 
    print('Not Attached')
 
  end
 
Output:
 
  nil
 
  &nbsp;
 
  Attached to NOTHING
 
  Not Attached
 
  
Note: If attached, and the attached process closes the "process" variable will still contain the last attached process' main module name.
+
print(string.format("%X", base))
 +
</syntaxhighlight>
  
 +
====Resolve an address relative to the main module====
 +
<syntaxhighlight lang="lua" line highlight="1">
 +
local address = getAddress(process .. "+1234")
  
With the same code as above and '''attached''' to the '''''Cheat Engine Tutorial (64-Bit)''''':
+
print(string.format("%X", address))
 +
</syntaxhighlight>
  
Output:
+
====Read a value relative to the main module====
  string
+
<syntaxhighlight lang="lua" line highlight="1">
  Tutorial-x86_64.exe
+
local value = readInteger(process .. "+1234")
  Attached to Tutorial-x86_64.exe
 
  attached
 
  
 +
print(value)
 +
</syntaxhighlight>
  
-------------------------
+
====Guard code until a process is attached====
 +
<syntaxhighlight lang="lua" line highlight="1">
 +
if readInteger(process) == nil then
 +
  print("No readable process module is currently opened")
 +
  return
 +
end
  
=== Links ===
+
print("Attached to: " .. process)
 +
</syntaxhighlight>
  
* [[Lua]]
+
====Use process with auto assembler scripts====
* [[Help_File:Script_engine|Script engine]]
+
<syntaxhighlight lang="lua" line highlight="1,4">
 +
local script = process .. [[+1234:
 +
  nop
 +
]]
  
==== Variables ====
+
autoAssemble(script)
* [[dbk_NtOpenProcess]]
+
</syntaxhighlight>
  
==== Functions ====
+
====Compare process with a target name====
* [[getProcesslist]]
+
<syntaxhighlight lang="lua" line highlight="1">
* [[getWindowlist]]
+
if process == "game.exe" then
* [[getOpenedProcessID]]
+
  print("The target process is open")
* [[getProcessIDFromProcessName]]
+
end
* [[openProcess]]
+
</syntaxhighlight>
* [[getForegroundProcess]]
+
 
* [[getWindowProcessID]]
+
{{LuaSeeAlso}}
* [[createProcess]]
 
* [[debugProcess]]
 
* [[dbk_useKernelmodeOpenProcess]]
 
* [[dbk_useKernelmodeProcessMemoryAccess]]
 
* [[dbk_getPEProcess]]
 

Latest revision as of 20:24, 25 June 2026

<> Lua API Reference

variable process : string

Contains the main module name of the currently opened process.

Value[edit]

String — The main module name of the currently opened process.

If no process is opened, this variable may be empty or not point to a readable module base.

Examples[edit]

Print the current process module name[edit]

1 print(process)

Check whether Cheat Engine is attached[edit]

1 local attached = readInteger(process) ~= nil
2 
3 print("Attached: " .. tostring(attached))

Use process as a module base[edit]

1 local base = getAddress(process)
2 
3 print(string.format("%X", base))

Resolve an address relative to the main module[edit]

1 local address = getAddress(process .. "+1234")
2 
3 print(string.format("%X", address))

Read a value relative to the main module[edit]

1 local value = readInteger(process .. "+1234")
2 
3 print(value)

Guard code until a process is attached[edit]

1 if readInteger(process) == nil then
2   print("No readable process module is currently opened")
3   return
4 end
5 
6 print("Attached to: " .. process)

Use process with auto assembler scripts[edit]

1 local script = process .. [[+1234:
2   nop
3 ]]
4 
5 autoAssemble(script)

Compare process with a target name[edit]

1 if process == "game.exe" then
2   print("The target process is open")
3 end

Main Pages

Core Lua documentation entry points

Lua
Script Engine