2017-07-08 119 views
0

我试图做一个脚本来改变我在注册表中的鼠标设置。当我运行脚本时,我发现已做出更改,但除非我注销并重新登录,否则这些更改不会生效,这是不可行的。如何在批处理脚本中更改鼠标设置?

:: MouseSensitivity      10 
:: MouseSpeed (Set Pointer Precision) 0 
:: MouseThreshold1      0 
:: MouseThreshold2      0 

@ECHO OFF 

REG ADD "HKEY_CURRENT_USER\Control Panel\Mouse" /v MouseSensitivity /t REG_SZ /d 10 /f 
REG ADD "HKEY_CURRENT_USER\Control Panel\Mouse" /v MouseSpeed /t REG_SZ /d 0 /f 
REG ADD "HKEY_CURRENT_USER\Control Panel\Mouse" /v MouseThreshold1 /t REG_SZ /d 0 /f 
REG ADD "HKEY_CURRENT_USER\Control Panel\Mouse" /v MouseThreshold2 /t REG_SZ /d 0 /f 

ECHO Execution logged on: %DATE% at %TIME% >> test.txt 

:: /* Tried this, doesn't work. 
:: RUNDLL32.EXE USER32.DLL, UpdatePerUserSystemParameters 
:: */ 

@EXIT /B 0 
+3

注册表不是API。您需要从可以调用Win32 API的语言中调用SystemParametersInfo。 –

回答

0

Raymond Chen,你说得对。 下面是我用C++提出的解决方案。

#include <windows.h> 

int main() 
{ 
    int mouse_info[3]; 

    mouse_info[0] = 0; // MouseThreshold1 
    mouse_info[1] = 0; // MouseThreshold2 
    mouse_info[2] = 0; // Set Pointer Precision 

    // Set and update user settings. In effect immediately. 
    SystemParametersInfo(SPI_SETMOUSE, 
         0, 
         mouse_info, 
         SPIF_UPDATEINIFILE); 

    return 0; 
}