慕容扬鞭 2021-04-06 18:02 采纳率: 0%
浏览 59

用SystemParametersInfo()来设置鼠标移动速度似乎没有效果,不知道原因,求解!

#include <stdio.h>
#include <windows.h>
#include <string.h>
//#pragma comment(lib, "user32.lib")
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) // 设置入口地址


int main()
{
    BOOL fResult;
    int i,MouseSpeed;       
    LPTSTR szBuffer = new TCHAR[40];

    // Get the current mouse speed. 

    fResult = SystemParametersInfo(
        SPI_GETMOUSESPEED,   // get mouse information 
        0,              // not used 
        &MouseSpeed,    // holds mouse information
        0);             // not used 

    if (fResult)
    {
        wsprintf(szBuffer, "%d", MouseSpeed);
        MessageBox(NULL, szBuffer, "当前的鼠标速度", 0);
        

        for(i=10;i<110;i+=10)
        {
            MouseSpeed = i;  

            SystemParametersInfo(
                SPI_SETMOUSE,      // set mouse information
                0,                 // not used 
                (VOID*)MouseSpeed,        // mouse information 
                SPIF_SENDCHANGE|SPIF_UPDATEINIFILE);  // update win.ini

            wsprintf(szBuffer, "%d", MouseSpeed);
            MessageBox(NULL, szBuffer, "当前的鼠标速度", 0);
            
        }
         
    }
    return 0;
}
  • 写回答

1条回答 默认 最新

  • 虫鸣@蝶舞 2024-02-05 03:42
    关注

    首先你的SystemPatametersInfo的第一参数错了,不是SPI_GETMOUSESPEED,而是SPI_SETMOUSESPEED,其次第三参数要强制把int类型转换为PVIOD指针类型,最后的参数是SPIF_SENDCHANGE作用是通知系统上的所有程序立即更新设置,所有的例子如下gpt代码:

    int speed = 15; // 你想设置的鼠标速度
    SystemParametersInfo(SPI_SETMOUSESPEED, 0, reinterpret_cast<PVOID>(speed), SPIF_SENDCHANGE);
    
    评论

报告相同问题?

悬赏问题

  • ¥30 Matlab打开默认名称带有/的光谱数据
  • ¥50 easyExcel模板 动态单元格合并列
  • ¥15 res.rows如何取值使用
  • ¥15 在odoo17开发环境中,怎么实现库存管理系统,或独立模块设计与AGV小车对接?开发方面应如何设计和开发?请详细解释MES或WMS在与AGV小车对接时需完成的设计和开发
  • ¥15 CSP算法实现EEG特征提取,哪一步错了?
  • ¥15 游戏盾如何溯源服务器真实ip?需要30个字。后面的字是凑数的
  • ¥15 vue3前端取消收藏的不会引用collectId
  • ¥15 delphi7 HMAC_SHA256方式加密
  • ¥15 关于#qt#的问题:我想实现qcustomplot完成坐标轴
  • ¥15 下列c语言代码为何输出了多余的空格