Как AutoHotKey's SetTitleMatchMode, RegEx работают за кулисами, чтобы найти совпадения заголовков окон - PullRequest
0 голосов
/ 05 мая 2020

Я использовал AutoHotKey SetTitleMatchMode, RegEx для обнаружения windows, который другие методы просто не могут обнаружить. Одним из примеров является Spotify.exe, который вы загружаете из программы магазина windows.

Это заставило меня спросить себя, как AHK за кулисами использует RegEx для поиска совпадения или несовпадения. Ниже приведены несколько примеров программ, которые я использую для обнаружения RegEx.

; %%%%%%%%%%%%%%%%%%%% LOGITECH MOUSE %%%%%%%%%%%%%%%%%%%%

!g::
lcoreFULL := "i)Logitech Gaming Software ahk_class Qt5QWindowIcon ahk_exe \\LCore\.exe$"
SetTitleMatchMode, RegEx
If WinActive(lcoreFULL) {
  WinClose, %lcoreFULL%
  }
Else If !WinExist(lcoreFULL) {
  RunAs, USERNAME, PASSWORD, DOMAIN
  Run, "C:\Program Files\Logitech Gaming Software\LCore.exe"
  WinRestore, %lcoreFULL%
  WinActivate, %lcoreFULL%
  RunAs
  }
Else {
  WinRestore, %lcoreFULL%
  WinActivate, %lcoreFULL%
  }
Return

; %%%%%%%%%%%%%%%%%%%% SPOTIFY %%%%%%%%%%%%%%%%%%%%

!s::
spotifyFULL := "i)Spotify Premium ahk_class Chrome_WidgetWin\_0 ahk_exe \\Spotify\.exe$"
SetTitleMatchMode, RegEx
If WinActive(spotifyFULL) {
  WinMaximize, %spotifyFULL%
  WinClose, %spotifyFULL%
  }
Else If !WinExist(spotifyFULL) {
  RunAs, USERNAME, PASSWORD, DOMAIN
  Run, "C:\Users\jholl\AppData\Local\Microsoft\WindowsApps\Spotify.exe"
  WinRestore, %spotifyFULL%
  WinActivate, %spotifyFULL%
  WinMaximize, %spotifyFULL%
  RunAs
  }
Else {
  WinClose, %spotifyFULL%
  }
Return

Итак, мои горячие клавиши работают .... однако я не могу сказать, все ли внутри строки найдено успешно или только часть строки. Одна из причин - из-за частей "ahk_class" и "ahk_exe". Я знаю, что вам, возможно, нужно избежать символа «_» в обоих этих разделах, НО команда все еще определяет и выполняет windows должным образом.

...