Created
March 19, 2020 16:55
-
-
Save alfarom256/3615e950783f727f19c5d6114addb516 to your computer and use it in GitHub Desktop.
Slow the fuck down
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <Windows.h> | |
#include <jobapi2.h> | |
#include <stdlib.h> | |
// something something don't use iostream | |
#include <iostream> | |
#define IF_ERR(x,y) if(x == y) {std::cout<<"Error! : " << GetLastError() << std::endl; exit(-1);} | |
int main() { | |
int x; | |
std::cout << "Enter PID: "; | |
std::cin >> x; | |
HANDLE hProc = OpenProcess(PROCESS_SET_QUOTA | PROCESS_TERMINATE | PROCESS_QUERY_LIMITED_INFORMATION, FALSE, x); | |
IF_ERR(hProc, NULL); | |
HANDLE hJob = CreateJobObjectW(NULL, L"FUG"); | |
BOOL proc_in_job; | |
IF_ERR(IsProcessInJob(hProc, hJob, &proc_in_job), 0); | |
if (proc_in_job) | |
{ | |
std::cout << "process has a job already... skipping" << std::endl; | |
exit(0); | |
} | |
BOOL assign_success = AssignProcessToJobObject(hJob, hProc); | |
IF_ERR(assign_success, FALSE); | |
PJOBOBJECT_CPU_RATE_CONTROL_INFORMATION jcrci = new(JOBOBJECT_CPU_RATE_CONTROL_INFORMATION); | |
jcrci->ControlFlags = JOB_OBJECT_CPU_RATE_CONTROL_ENABLE | JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP; | |
jcrci->CpuRate = 1; | |
BOOL set_info_job_obj = SetInformationJobObject(hJob, JobObjectCpuRateControlInformation, jcrci, sizeof(JOBOBJECT_CPU_RATE_CONTROL_INFORMATION)); | |
IF_ERR(set_info_job_obj, FALSE); | |
std::cout << "Job CPU set to 0.01%" << std::endl; | |
// do whatever | |
Sleep(INFINITE); | |
// handle your ctl+c here | |
CloseHandle(hJob); | |
CloseHandle(hProc); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment