Access97のモジュールウィンドウでマウスホイールによるスクロールはできないでしょうか?
Visual Basic 6.0 IDE でマウス ホイール イベントが機能しない
ttp://support.microsoft.com/kb/837910/ja を試してみたのですがAccess2000以降でないと動かないようなので、とりあえずキーを送るだけのものを書いてみたのですが
どうもいまいちな気がしますので。
#IfWinActive ahk_class OMain
*WheelDown::
Send,{DOWN 2}
return
*WheelUp::
Send,{UP 2}
return
#IfWinActive
ちなみにWheel Redirectorやかざぐるマウスでは動きませんでした。
>>574 別にその解決法でいいと思うけど、どうしても気になるなら
WM_SCROLLかWM_VSCROLLメッセージをコントロールに送れば良いんじゃね?
「どこでもホイール」がそんなことやってたような。
Access97は触ったことないので上手くいくか分からないけども。
>>573 タスクトレイにFirefoxがあるなら最大化、無ければ最小化でいいんじゃないか?
タスクトレイのものを操作するサンプルは流行らせるページにあったはず
>>572 Regular Expressions を使うといいんじゃないかな?
SetTitleMatchMode RegEx
#IfWinNotActive ahk_class (window1|window2|window3)
1つのPCで、複数のAHKスクリプトを動かす際、
ホットキーの優先順位を決めることは可能でしょうか。
PCを起動している間、必ず常駐させるスクリプトが1つある状況で、
たまに使いたいスクリプトをあとから実行して2つ存在させると、
同じ定義下にあるホットキーを入れた際、発動するスクリプトが
不定期に入れ替わるようです。
2つ目のスクリプトが起動している間は、1つ目のホットキーを
無効にさせたいのですが、ネットワークでいう「メトリック」みたいな
動きは、どのように作るのがベストベストでしょうか。
>>579 ありがとうございます。
ちょっと今Accessの勉強をしないとまずいので暇を見てやってみることにします。
ハンドルやクラス名の取得はClsinfoというのを使っていたんですがWinspectorは細かく調べられていいですね。
かざぐるマウスとかで簡単にいけると思ったんですが甘かった..
583 :
574:2008/05/19(月) 19:51:51 ID:xrRjgNKk0
579でいただいたスクリプトを適当に書き換えてAccess97でもマウスホイールによるスクロールができるようになったので
一応報告しておきます。場当たり的修正なので汎用性は0です。WheelScrool.ahkは93行辺りで変数を初期化しているよう
なので38行辺りの設定が無効になっているような感じです。
--- WheelScrool.ahk~ Sat Nov 03 00:14:08 2007
+++ WheelScrool.ahk Mon May 19 00:41:40 2008
@@ -137,6 +137,11 @@
scmode = 0
}
+ if (ccls = "OModule") ; 追加
+ {
+ scmode = null
+ }
+
if (!scmode)
MOUSEWHELL(ctrl,mx,my,"",AcclSpeed,AcclTOut)
Else SCROLL(ctrl,mode,shwnd,"",ScrlCount,AcclSpeed,AcclTOut)
@@ -283,6 +288,8 @@
ACount := ScrlCnt
Else
ACount += ScrlCnt * ASpeed
+
+ ACount = 3 ; 追加
;wParam: 方向
if (dir = "")
AutoHotkey.iniには以下で
#IfWinActive ahk_class OMain
#Include, %A_ScriptDir%\Extras\Scripts\WheelScrool.ahk
Gosub,WheelInit
#IfWinActive
584 :
574:2008/05/19(月) 21:58:09 ID:xrRjgNKk0
失礼。これだけでいいみたいです。これなら汎用性もありそうです。
--- WheelScrool.ahk~ Sat Nov 03 00:14:08 2007
+++ WheelScrool.ahk Mon May 19 21:53:35 2008
@@ -94,6 +94,7 @@
,VDisavledList, VScroolList, MdiActivateList
,BypassCtlList, NullShwndTabooList, HDisavledList
+ Gosub,WheelInit
CoordMode,Mouse,Screen
MouseGetPos,mx,my,hwnd,ctrl,3
WinGetClass,wcls, ahk_id %hwnd%
>>583 >WheelScrool.ahkは93行辺りで変数を初期化しているよう
>なので38行辺りの設定が無効になっているような感じです。
そこは関数内でglobal変数を直に使えるよう再宣言してるだけで初期化はされない筈…
一応うちではちゃんと動いてるんだけど、値引き継がれない?
XP SP2 / AHK Version 1.0.47.06
586 :
585:2008/05/20(火) 02:08:31 ID:z9u7+QjX0
ああ解った、AutoHotkey.ini側の記述の問題だわ
AHK常駐時に初期化する前提だから AutoExecute部(ファイル先頭)に書かないとダメ
;--- AutoHotkey.ini ---
#Include, %A_ScriptDir%\Extras\Scripts\WheelScrool.ahk
Gosub,WheelInit
あくまで#IfWinActiveでAccessにのみ適用したいなら WheelScrool.ahkの Hotkeyの前後に入れる
;--- WheelScrool.ahk : Line 77 ---
#IfWinActive ahk_class OMain
+WheelDown:: WheelRedirect(1)
+WheelUp:: WheelRedirect(1)
WheelDown:: WheelRedirect()
WheelUp:: WheelRedirect()
#IfWinActive
ttp://lukewarm.s101.xrea.com/up/file/085.zip HDD漁ったらロジクールのチルトでの横スクロールのテストとかした時に作った新しいのがあったんで
上げ直しときます。互換リストにOModule追加してみたんで良かったらコメント外して使って見て下さい。
(ちなみに >583 scmode = null は 0でなく "null"という文字列が代入されてる模様)
>>587 日本語のファイル名に対応していないなら、一時的にAHKでリネームすればいいじゃない。
>>586 わざわざありがとうございます。
かざぐるマウスと併用できるようなのと加速が意外と便利なのでAccess以外にも適用させて使おうと思います。
というかマウスジェスチャーや音量の調節も出来るようだし、AHKがあればかざぐるマウスはいらなそうです。
AHKになさそうなのは設定ダイアログをだしていてもメインウィンドウを動かせる機能ぐらいじゃないかと思います。