开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 211|回复: 7
收起左侧

[完成] 请问如何给其他进程制造卡顿?类似于帧数突然变得很小...

 关闭 [复制链接]
结帖率:100% (6/6)
发表于 2024-10-16 03:34:31 | 显示全部楼层 |阅读模式   广东省汕尾市
10精币

最佳答案

查看完整内容

直接问AI就行了 [mw_shl_code=cpp,true]#include #include // 主程序入口 int main() { // 创建 Job 对象,用于管理多个进程的资源使用 HANDLE hJob = CreateJobObject(NULL, NULL); if (hJob == NULL) { printf("创建 Job 对象失败。错误代码: %d\n", GetLastError()); return 1; } // 设置 CPU 使用率限制,20% CPU JOBOBJECT_CPU_RATE_CONTROL_INFORMATION cpuRateInfo = {0}; ...

评分

参与人数 1精币 +1 收起 理由
1327067592 + 1 他说的是卡帧软件,例如cf卡一瞬间可以穿墙

查看全部评分

结帖率:97% (29/30)

签到天数: 22 天

发表于 2024-10-16 03:34:32 | 显示全部楼层   广西壮族自治区柳州市
li6601350 发表于 2024-10-16 04:44
那么有无例子参考一下

直接问AI就行了

[C++] 纯文本查看 复制代码
#include <windows.h>
#include <stdio.h>

// 主程序入口
int main() {
    // 创建 Job 对象,用于管理多个进程的资源使用
    HANDLE hJob = CreateJobObject(NULL, NULL);
    if (hJob == NULL) {
        printf("创建 Job 对象失败。错误代码: %d\n", GetLastError());
        return 1;
    }

    // 设置 CPU 使用率限制,20% CPU
    JOBOBJECT_CPU_RATE_CONTROL_INFORMATION cpuRateInfo = {0};
    cpuRateInfo.ControlFlags = JOB_OBJECT_CPU_RATE_CONTROL_ENABLE |  // 启用 CPU 控制
                               JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP;  // 使用硬性限制
    cpuRateInfo.CpuRate = 2000;  // 设置为20% CPU使用率(单位:1/10000)

    // 将限制信息应用到 Job 对象
    if (!SetInformationJobObject(
            hJob,
            JobObjectCpuRateControlInformation,
            &cpuRateInfo,
            sizeof(cpuRateInfo))) {
        printf("设置 CPU 限制失败。错误代码: %d\n", GetLastError());
        CloseHandle(hJob);  // 释放 Job 句柄
        return 1;
    }

    // 打开目标进程,这里需要将 processID 替换为你要限制的进程 ID
    DWORD processID = 12345;  // 示例进程ID,请替换为实际的进程ID
    HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, processID);
    if (hProcess == NULL) {
        printf("打开进程失败。错误代码: %d\n", GetLastError());
        CloseHandle(hJob);  // 释放 Job 句柄
        return 1;
    }

    // 将进程添加到 Job 对象中,使其受 CPU 限制的控制
    if (!AssignProcessToJobObject(hJob, hProcess)) {
        printf("将进程分配到 Job 失败。错误代码: %d\n", GetLastError());
        CloseHandle(hProcess);  // 释放进程句柄
        CloseHandle(hJob);  // 释放 Job 句柄
        return 1;
    }

    printf("进程成功添加到 Job,并设置了 CPU 使用率限制。\n");

    // 使用 getchar() 阻止程序退出,以保持 Job 的有效性
    printf("按回车键退出程序...\n");
    getchar();

    // 关闭句柄,释放资源
    CloseHandle(hProcess);
    CloseHandle(hJob);

    return 0;
}



补充内容 (2024-10-16 05:49):
难点在于使用率的设置,太低容易卡死,太高又没效果
所以还不如写个循环不停地暂停恢复进程,之前看过一个降低CPU使用率的程序就是这么实现的
回复

使用道具 举报

结帖率:96% (45/47)

签到天数: 22 天

发表于 2024-10-16 03:52:08 | 显示全部楼层   河南省南阳市
钩子钩住,然后发送消息
回复

使用道具 举报

结帖率:100% (6/6)

签到天数: 22 天

 楼主| 发表于 2024-10-16 04:24:48 | 显示全部楼层   广东省汕尾市
dwcq 发表于 2024-10-16 03:52
钩子钩住,然后发送消息

安装钩子返回假,目标程序是64位.
回复

使用道具 举报

结帖率:96% (45/47)

签到天数: 22 天

发表于 2024-10-16 04:29:05 | 显示全部楼层   河南省南阳市
我不会。是什么程序你说一下,别人好帮你
回复

使用道具 举报

结帖率:97% (29/30)

签到天数: 22 天

发表于 2024-10-16 04:31:04 | 显示全部楼层   广西壮族自治区柳州市
用job限制CPU,刚好就是这种一卡一卡的
回复

使用道具 举报

结帖率:100% (6/6)

签到天数: 22 天

 楼主| 发表于 2024-10-16 04:44:51 | 显示全部楼层   广东省汕尾市
我的小拇指啊 发表于 2024-10-16 04:31
用job限制CPU,刚好就是这种一卡一卡的

那么有无例子参考一下
回复

使用道具 举报

结帖率:89% (8/9)

签到天数: 22 天

发表于 2024-10-16 05:26:55 | 显示全部楼层   福建省泉州市
循环给目标进程优化内存

评分

参与人数 1好评 +1 精币 +2 收起 理由
li6601350 + 1 + 2 新技能已get√

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表