Advertisement
kazurai

[AHK Lib] MouseIsOver() ver.180808

Aug 8th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2. 【タイトル】MouseIsOver
  3. 【  概要  】マウスカーソル下のウィンドウ/ClassNN判定
  4. 【  Type  】Lib(関数)
  5. 【  返値  】1 ※真
  6.             0 ※偽
  7. 【  Site  】http://pastebin.com/QC69R09p
  8. 【 更新日 】2018/08/08
  9.  
  10. ┌----┐
  11. │関数│
  12. └----┘
  13. MouseIsOver("WinTitle")                 ;マウスカーソル下のウィンドウ判定
  14. MouseIsOver("WinTitle", "ClassNN")      ;マウスカーソル下のClassNN判定
  15.  
  16. MouseIsOver_1("WinTitle"[, "ClassNN"])  ;前方一致
  17. MouseIsOver_2("WinTitle"[, "ClassNN"])  ;部分一致
  18. MouseIsOver_3("WinTitle"[, "ClassNN"])  ;完全一致
  19. MouseIsOver_R("WinTitle"[, "ClassNN"])  ;正規表現
  20.  
  21. ┌----------┐
  22. │How to Use│
  23. └----------┘
  24. ■使用例
  25. ;タスクバー上
  26. #If MouseIsOver("ahk_class Shell_TrayWnd", "MSTaskListWClass1")
  27. #If
  28.  
  29. ;タスクトレイ上
  30. #If (MouseIsOver("ahk_class Shell_TrayWnd") && !MouseIsOver("ahk_class Shell_TrayWnd", "MSTaskListWClass1"))
  31. #If
  32.  
  33. ;デスクトップ上
  34. #If MouseIsOver_R("ahk_class (Progman|WorkerW)")
  35. #If
  36.  
  37. #If (MouseIsOver("ahk_class Progman") || MouseIsOver("ahk_class WorkerW"))
  38. #If
  39. */
  40. ;【MouseIsOver()】
  41.  
  42. MouseIsOver(WinTitle, ClassNN:="") {
  43.     MouseGetPos,,, hWnd, ControlNN
  44. return (!ClassNN ? WinExist(WinTitle " ahk_id " hWnd) <> 0
  45.                  : WinExist(WinTitle " ahk_id " hWnd) && InStr(ControlNN, ClassNN))
  46. }
  47.  
  48. MouseIsOver_1(WinTitle, ClassNN:="") {
  49.     MouseGetPos,,, hWnd, ControlNN                                                          ;マウスカーソル下のウィンドウハンドル、ClassNN取得
  50.     SavedTMM := A_TitleMatchMode                                                            ;TitleMatchModeの設定を保存
  51.     SetTitleMatchMode, 1                                                                    ;前方一致検索
  52.     result := (!ClassNN ? WinExist(WinTitle " ahk_id " hWnd) <> 0                           ;ウィンドウ判定(ClassNNなし)
  53.                         : WinExist(WinTitle " ahk_id " hWnd) && InStr(ControlNN, ClassNN))  ;   ClassNN判定(ClassNNあり)
  54.     SetTitleMatchMode, %SavedTMM%                                                           ;TitleMatchModeの設定を復元
  55. return result
  56. }
  57.  
  58. MouseIsOver_2(WinTitle, ClassNN:="") {
  59.     MouseGetPos,,, hWnd, ControlNN                                                          ;マウスカーソル下のウィンドウハンドル、ClassNN取得
  60.     SavedTMM := A_TitleMatchMode                                                            ;TitleMatchModeの設定を保存
  61.     SetTitleMatchMode, 2                                                                    ;部分一致検索
  62.     result := (!ClassNN ? WinExist(WinTitle " ahk_id " hWnd) <> 0                           ;ウィンドウ判定(ClassNNなし)
  63.                         : WinExist(WinTitle " ahk_id " hWnd) && InStr(ControlNN, ClassNN))  ;   ClassNN判定(ClassNNあり)
  64.     SetTitleMatchMode, %SavedTMM%                                                           ;TitleMatchModeの設定を復元
  65. return result
  66. }
  67.  
  68. MouseIsOver_3(WinTitle, ClassNN:="") {
  69.     MouseGetPos,,, hWnd, ControlNN                                                          ;マウスカーソル下のウィンドウハンドル、ClassNN取得
  70.     SavedTMM := A_TitleMatchMode                                                            ;TitleMatchModeの設定を保存
  71.     SetTitleMatchMode, 3                                                                    ;完全一致検索
  72.     result := (!ClassNN ? WinExist(WinTitle " ahk_id " hWnd) <> 0                           ;ウィンドウ判定(ClassNNなし)
  73.                         : WinExist(WinTitle " ahk_id " hWnd) && InStr(ControlNN, ClassNN))  ;   ClassNN判定(ClassNNあり)
  74.     SetTitleMatchMode, %SavedTMM%                                                           ;TitleMatchModeの設定を復元
  75. return result
  76. }
  77.  
  78. MouseIsOver_R(WinTitle, ClassNN:="") {
  79.     MouseGetPos,,, hWnd, ControlNN                                                          ;マウスカーソル下のウィンドウハンドル、ClassNN取得
  80.     SavedTMM := A_TitleMatchMode                                                            ;TitleMatchModeの設定を保存
  81.     SetTitleMatchMode, RegEx                                                                ;正規表現検索
  82.     result := (!ClassNN ? WinExist(WinTitle " ahk_id " hWnd) <> 0                           ;ウィンドウ判定(ClassNNなし)
  83.                         : WinExist(WinTitle " ahk_id " hWnd) && InStr(ControlNN, ClassNN))  ;   ClassNN判定(ClassNNあり)
  84.     SetTitleMatchMode, %SavedTMM%                                                           ;TitleMatchModeの設定を復元
  85. return result
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement