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

用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);
    
    评论

报告相同问题?

悬赏问题

  • ¥15 JNA调用DLL报堆栈溢出错误(0xC00000FD)
  • ¥15 请教SGeMs软件的使用
  • ¥15 自己用vb.net编写了一个dll文件,如何只给授权的用户使用这个dll文件进行打包编译,未授权用户不能进行打包编译操作?
  • ¥50 深度学习运行代码直接中断
  • ¥20 需要完整的共散射点成像代码
  • ¥15 编写vba代码实现数据录入工作
  • ¥15 做过TCL海信电视小米电视相关影视会员软件私我
  • ¥15 Mapreduce是正常的,在运行其他jar包时并没有任何问题,只是在做LogCount.jar 时出的问题。如图所示
  • ¥15 ImportError: DLL load failed while importing _iterative: 找不到指定的模块。
  • ¥15 如何通过交互分析得出某高危患者对放疗获益更多