|
期待する動作は一応マクロで実現は可能ですが、左矢印キーへの割り当てにはちょ
っと問題があるかもしれません。
とりあえず、左矢印キーに割り当てないのであれば、マクロの例としては以下のよ
うになります。
loaddll "tkinfo.dll";
if( dllfunc("IsThreadView") != 1 ) {
//message "スレッド表示じゃない。";
goto Label_PrevPage;
}
#level = dllfunc("GetThreadLevel");
if( #level != 0 ) {
//message "スレッドの根元じゃない";
goto Label_PrevPage;
}
#collapse = dllfunc("GetThreadCollapse");
if( #collapse != 2 ) {
//message "折りたたまれてる。または子が無い。";
goto Label_PrevPage;
}
#listwnd = dllfunc("TitleListWnd");
#n = dllfunc("SimulateKeyStroke2", #listwnd, 0x25, 0, 0, 0);
//0x25 ... 左矢印キー、VK_LEFT
endmacro;
Label_PrevPage: ;
#listwnd = dllfunc("TitleListWnd");
#n = dllfunc("SimulateKeyStroke2", #listwnd, 0x21, 0, 0, 0);
//0x21 ... PrevPage、VK_PRIOR
endmacro;
----------------------------------------------------
左矢印キーに割り当てるとしたら、例えばメール一覧枠の中では上記マクロでいい
ですが、メール内容枠の中とかフォルダ枠の中では普通に左矢印キーとして動作しな
いといけないです。それが難しいと思います。
一応、以下のマクロで大丈夫な気がするんですが、ダメなケースがあるかもしれま
せん。
loaddll "tkinfo.dll";
if( dllfunc("CurrentPane2") != 1 ) {
//メール一覧枠じゃない場合
#n = dllfunc("SimulateKeyStroke", 0x25, 0, 0 );
endmacro;
}
if( dllfunc("IsThreadView") != 1 ) {
//message "スレッド表示じゃない。";
goto Label_PrevPage;
}
#level = dllfunc("GetThreadLevel");
if( #level != 0 ) {
//message "スレッドの根元じゃない";
goto Label_PrevPage;
}
#collapse = dllfunc("GetThreadCollapse");
if( #collapse != 2 ) {
//message "折りたたまれてる。または子が無い。";
goto Label_PrevPage;
}
#listwnd = dllfunc("TitleListWnd");
#n = dllfunc("SimulateKeyStroke2", #listwnd, 0x25, 0, 0, 0);
//0x25 ... 左矢印キー、VK_LEFT
endmacro;
Label_PrevPage: ;
#listwnd = dllfunc("TitleListWnd");
#n = dllfunc("SimulateKeyStroke2", #listwnd, 0x21, 0, 0, 0);
//0x21 ... PrevPage、VK_PRIOR
endmacro;
|
|