色々調べて自分の望む動作が出来たと思ったら、うまく機能しない所が出てきました。それで二つほど聞きたいです。

これがうまく機能している物で、非アクティブのウインドウ上でジェスチャーを開始すると、アクティブにしてから本命の命令を実行してカーソルをジェスチャー開始位置へ戻す。
;現在のタブを閉じる(CTRL + w)
if (MG_Defer()) {
MG_Move()
Sleep,50
MG_WinActivate()
Send, ^w
}

右ボタン+マウスホイール下回転でタブを連続で切り替える・・・これがうまく動作しない。ホイールを回し続けても一つ切り替わるだけ。
;タブを順送りで表示を切り替える(CTRL + TAB)
if (MG_Defer()) {
MG_Move()
Sleep,50
MG_WinActivate()
Send, ^{Tab}
}

解決方法分かる方いませんか。

あと、対象のウインドウが既にアクティブなら、アクティブ化の命令を実行しないでショートカットキーを送り、非アクティブなら、アクティブ化の命令を実行してからショートカットキーを送る命令を教えてください。
上の命令だと操作のたびに必ずアクティブ化を実行するため他に問題が出そうなので。