4

Я хотел бы иметь возможность ввести строку или ключевое слово (например, "новости" или "отчет") и назначить его в открытое окно. Затем я могу вспомнить это окно, используя это ключевое слово или строку.

Например, скажем, у меня есть документ, открытый в Word под названием report.docx в одном окне, веб-сайт, открытый в Chrome с новостями (например, cnn.com), и какое-то другое третье приложение в третьем окне.

Я хотел бы иметь программу, которую я могу использовать, чтобы открыть небольшое текстовое окно, центрированное на экране (по аналогии с Launchy's), где я мог бы напечатать горячую строку и сообщить этой программе, с каким окном связать горячую строку.

Затем позже, в любое время, я мог бы снова вызвать эту программу (т. Е. Вызвать текстовое окно), чтобы снова набрать строку быстрого доступа и вернуть окно, которое я связал с этой горячей строкой.

В приведенном выше примере, я мог бы присвоить строку "report" в окне Word , с документом «report.docx», в автозамены "news" в окне хромированной с "cnn.com" и т.д.

Есть ли инструмент, который делает это на Windows? Возможно, с помощью Autohotkey?

Обновить:

Следующий скрипт позволяет пользователю назначать номера окнам с помощью Ctrl+number , а затем вызывать их с помощью Alt+номер. Я надеюсь, что этот сценарий может послужить основой для того, что я собираюсь сделать.

В частности, было бы неплохо иметь горячую клавишу, которая вызывает текстовое поле, в котором пользователь может вводить строку или ключевые слова при назначении или вызове окон. Должна быть одна горячая клавиша для назначения строк окнам, а другая горячая клавиша для вызова окон.

Особенностью скрипта ниже является то, что он запоминает размер и местоположение окна.

Loop 10 
{ 
   i := A_Index - 1 
   HotKey ^%i%,DynHotkey 
   HotKey !%i%, DynHotkey 
} 
Exit 

DynHotkey: 
   StringRight i, A_ThisHotKey, 1 
   StringLeft what, A_ThisHotKey, 1 
   var := var%i% 
   IfEqual what, ^ 
   { 
   WinGet var%i%, ID, A
   WinGetPos, X%i%, Y%i%, Width%i%, Height%i%, A
   } 
   ;Else IfEqual what,!, WinMinimizeAll
   Else
   { 
   XX:=X%i%
   YY:=Y%i%
   WW:=Width%i%
   HH:=Height%i%
   WinActivate ahk_id %var%
   WinMove, A,, XX, YY, WW, HH
   }
Return

1 ответ1

2

Вот базовый скрипт AutoHotkey для назначения имен окнам и их активации по имени:

;Requires AutoHotkey_L

array := Object() ;associative array of name:window

#!n:: ;Windows+Alt+N
InputBox, name, , Set a name for the active window:
WinGet, window, ID, A
array[name] := window
Exit

#n:: ;Windows+N
InputBox, name, , Enter the name of a window to activate:
window := array[name]
WinActivate, ahk_id %window%
Exit

Очевидно, что это не полная программа. Это можно улучшить, проверив, существует ли имя или окно в массиве и т.д. Но с точки зрения функциональности, это так просто! :)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .