-
Notifications
You must be signed in to change notification settings - Fork 0
Home
PyCTools is a lightweight set of native DLLs and Python bindings for process inspection, memory analysis, and system metric collection on Windows.
This wiki serves as the official documentation hub. Whether you're a C developer building your own DLLs, a Python user leveraging the wrappers, or just curious how the system works under the hood — you're in the right place.
-
DLL Internals & Discovery How the
processInspectandhRngDLLs are structured, built, and dynamically located. -
Python Usage & Examples Step-by-step guides for using the wrapper classes, session handling, and metric querying.
-
C Code Explanations Detailed look into the native code powering the DLLs, from memory APIs to performance counters.
⚙ Whether you're downloading prebuilt binaries or compiling from source — this wiki will help you understand how it all fits together.
Important
Starting from v0.2.0-beta the script now purely checks bin/ inside the pyCTools directory!
In short ignore everything on the bottom
Compiled DLLs are placed in the bin/ directory, organized by architecture:
dist/
x64/
hRng_x64.dll
processInspect_x64.dll
...
x86/
hRng_x86.dll
processInspect_x86.dll
...
-
x64/: DLLs for 64-bit Python and applications -
x86/: DLLs for 32-bit Python and applications
Both hwrng and processInspect automatically search for the correct DLL based on your Python interpreter's architecture. Locations that are searched are:
-
./bin/{arch}/{dll}_{arch}.dll(relative to the Python library file)
Where
{arch}isx64orx86and{dll}is the mentioned/provided dll per library.
If the DLL is not found, a
FileNotFoundErroris raised.
- If you change any C source file, rerun the PowerShell build script to update the DLLs.
- If you move the project, ensure the
bin/folder remains in a location discoverable by the Python wrappers.- By default the Powershell script ensures to put the
binfile in the discoverable area.
- By default the Powershell script ensures to put the
- If you get DLL not found errors, check that the correct DLLs exist in the expected
bin/{arch}folders. - Ensure you are using the correct Python architecture (x64 or x86) for the DLLs present.
This has been updated for version 0.2.0-beta (or 0.2.0b0 for python) on 13/08/2025