///コメントはすべてHSPに変換した場合の記載です。
using System.Runtime.InteropServices;
//#module MouseSpeed
public static class MouseSpeed{
//#include "user32.as"
[DllImport("user32, SetLastError = true)]
private static extern bool SystemParametersInfo(uint uiAction, uint uiParam, IntPtr pvVoid, uint fWinIni);
//#define global SPI_GETMOUSESPEED 0x0070
private const uint SPI_GETMOUSESPEED = 0x70;
//#define global SPI_SETMOUSESPEED 0x0071
private const uint SPI_SETMOUSESPEED = 0x71;
//#deffunc Set int speed
public static void Set(int speed){
//if (SystemParametersInfo(SPI_SETMOUSESPEED,0,speed,0) == 0){
//dialog "マウスカーソルの速度を設定できませんでした。"
//}
if ( ! SystemParametersInfo(SPI_SETMOUSESPEED, 0, new IntPtr(speed), 0)){
throw new Exception("マウスカーソルの速度を設定できませんでした。");
}
}
//return
//#deffunc Get
unsafe public static int Get(){
int result;
//result = 0
//if (SystemParametersInfo(SPI_GETMOUSESPEED, 0, varptr(result),0) == 0){
//dialog "マウスカーソルの速度を取得できませんでした。"
//}
if ( ! SystemParametersInfo(SPI_GETMOUSESPEED, 0, new IntPtr((void*)&result), 0)){
throw new Exception("マウスカーソルの速度を取得できませんでした。");
}
return result;
}
//return result
}
//#global
実際に使う際には、モジュール内の Set / Get という命令を使います。
下記は、完全に HSP の記載に書き換えたスクリプトです。
#module MouseSpeed
#include "user32.as"
#define global SPI_GETMOUSESPEED 0x0070
#define global SPI_SETMOUSESPEED 0x0071
#deffunc Set int speed
if (SystemParametersInfo(SPI_SETMOUSESPEED,0,speed,0) == 0){
dialog "マウスカーソルの速度を設定できませんでした。"
}
return
#deffunc Get
result = 0
if (SystemParametersInfo(SPI_GETMOUSESPEED, 0, varptr(result),0) == 0){
dialog "マウスカーソルの速度を取得できませんでした。"
}
return result
#global
//以下実際に使ってみる
Get
mes "現在のマウススピードは、"+stat+" です"
Set 11 //ここでスピードを 11 に設定(ここであり得ない数を指定するとエラーになる)
Get //本当に設定されたのか調べる
mes "マウススピードを "+stat+" に変更しました。"