【发布时间】:2013-05-29 12:15:31
【问题描述】:
为什么执行以下程序后鼠标速度没有变化?
是由于 SPI_SETMOUSESPEED 还是由于 SPIF_UPDATEINIFILE 、 SPIF_SENDCHANGE 无法更改 winini 文件和SPIF_SENDCHANGE 参数?
编译器:g++,操作系统:Windows 8。
#include <iostream>
#include <windows.h>
#include<winuser.h>
#pragma comment(lib, "user32.lib")
using namespace std ;
int main()
{
int i = 0 , *MouseSpeed = &i ;
bool x ;
// Retrieving the mouse speed .
x = SystemParametersInfo( SPI_GETMOUSESPEED , 0 , MouseSpeed , 0 ) ;
cout<<"\n\nPrevious Mouse Speed was : " << *MouseSpeed ;
cout<<"\n\nSystemParametersInfo return status for SPI_GETMOUSESPEED : " << x ;
if( x )
{
i = 20 ;
MouseSpeed = &i ;
// Changing the mouse speed .
SystemParametersInfo( SPI_SETMOUSESPEED ,
0 ,
MouseSpeed ,
SPIF_UPDATEINIFILE ||
SPIF_SENDCHANGE ||
SPIF_SENDWININICHANGE ) ;
cout<<"\n\nCurrent Mouse Speed is : " << *MouseSpeed ;
cout<<"\n\nSystemParametersInfo return status for SPI_SETMOUSESPEED : " << x << "\n\n" ;
}
if( !x )
cout<< "Error Status : " << GetLastError() << "\n\n";
return 0;
}
【问题讨论】:
-
你并不孤单,看起来有人喜欢我的图标:stackoverflow.com/questions/9848423/…
-
SystemParametersInfo 返回什么(真或假)?如果返回false,检查GetLastError()返回的错误号,这可能会给你一个线索。
-
我试过了,但没用。
-
@chris : 您的 SPI_SETMOUSE 工作正常,请参阅...stackoverflow.com/a/16814574/2153564
-
@birajbora,呵呵。那是一年多以前的事了,我只记得尝试了一些东西,看到数字变化,但看不到速度变化。