- 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 applicationsx86/: 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.
Open PowerShell and run:
cd ./tool/ compilerHelper.ps1
Choose the
.csource files you want to compile.The script will compile for both x86 and x64 architectures, placing the output in:
pyCTools/bin/x86(32-bit builds)pyCTools/bin/x64(64-bit builds)
Important
The build process uses cl.exe from the MSVC toolchain in Visual Studio, so make sure it’s installed and available in your PATH.
Note
Each compiled source produces four files per architecture:
.dll,.exp,.lib, and.obj.Only the
.dllis needed by the Python library.DLL filenames include an architecture suffix:
- Example:
hRng_x86.dll,hRng_x64.dll.
- Example:
- 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