2014-01-25 48 views
1

我寫了一個小應用程序來更改我的鼠標設置。通過註冊表更改鼠標設置後刷新Windows

問題是,當我更改註冊表時,它們不適用,而是在我註銷並登錄或重新引導後應用。

的原型代碼:

QSettings settings("HKEY_CURRENT_USER\\Control Panel\\Mouse", QSettings::NativeFormat); 
QVariant value("10"); 
settings.setValue("MouseSensitivity", value); 

我怎樣才能讓更改立即生效?

回答

3

如果你需要立即採取行動,你需要使用 SystemParametersInfo API與SPI_SETMOUSESPEED參數:

int mouseParams[3]; 
mouseParams[2] = NewmouseAccel; 
SystemParametersInfo(SPI_SETMOUSE, 0, mouseParams, SPIF_SENDCHANGE); 

而且它更專業的方式,而不是使用註冊表技巧。

+0

謝謝! 雖然,改變鼠標速度SPI_SETMOUSE不是正確的功能。使用這些參數的作品。 'SystemParametersInfo(SPI_SETMOUSESPEED,0,(INT *)值,SPIF_SENDCHANGE);' 來源爲參數:http://msdn.microsoft.com/en-us/library/windows/desktop/ms724947%28v=vs 0.85%29.aspx – Gwypaas

相關問題