メール起動時にNUMLOCKをONにしたいNo.43721
styth さん 12/12/03 10:26
 
 メール起動時に、NUMLOCKがOFFなら、それををONにしたいのですが、うまくい
きません。
 #n = dllfunc( "SimulateKeyStroke", 0x90,0,0,0 );//VK_NUMLOCK
 として、やってみましたが、ONになりません。
 よろしくお願いします。

[ ]
RE:43721 メール起動時にNUMLOCKをONにしNo.43722
秀まるお2 さん 12/12/03 11:39
 
 SimulateKeyStrokeは、実は本当にキーボード押下をシミュレートしてる訳じ
ゃなくて、キー入力のメッセージをウィンドウに送ってるだけでして、NumLock
のロックON/OFFコントロールには使えませんでした。

 Bypass_keybd_eventの方はたしかにキー入力をシミュレートするので、こっち
の方でお願いします。

 テストマクロ:

    loaddll "tkinfo.dll";
    #n = dllfunc( "Bypass_keybd_event", 0x90 );//VK_NUMLOCK

 ただ、今現在のNumLockのON/OFF状態を取得する関数が無いので、明示的にロ
ックをONにするとかOFFにするってことは出来ないんじゃないかと思います。な
ので、ついでに

 Bypass_GetKeyState

 って関数も次のβ版に追加させていただきます。

 ONにする例:

    loaddll "tkinfo.dll";
    #state = dllfunc("Bypass_GetKeyState", 0x90);
    if( (#state & 1) == 0 ) {
        #n = dllfunc( "Bypass_keybd_event", 0x90 );//VK_NUMLOCK
    }

[ ]
RE:43722 メール起動時にNUMLOCKをONにしNo.43726
h-tom さん 12/12/04 00:11
 

h-tom です。

> ただ、今現在のNumLockのON/OFF状態を取得する関数が無いので、明示的にロ
iskeydownで、NumLockやCapsLockの状態を、取得可能ですよ。

if(iskeydown( 0x90, 1 ) == false){
    //Num Lockがoffの場合
}

[ ]
RE:43726 メール起動時にNUMLOCKをONにしNo.43727
秀まるお2 さん 12/12/04 08:19
 
 秀丸マクロに命令があったのですね。これはこれは、余計な物を作ってしまい
ました。

 Bypass_GetKeyState関数は次のβ版では無しにします。

[ ]