AutoHotkey Отключить или Принудительно взаимодействовать с одним окном - PullRequest
0 голосов
/ 06 апреля 2020

Мой скрипт запускается из окна текстового поля (MS Word), затем он открывает окно gui с кнопкой. Мне нужно, чтобы окно текстового поля не касалось, пока кнопка не нажата (потому что я не хочу терять позицию каретки). Я вижу 3 решения: 1 отключить все взаимодействия с окном текстового поля 2, заставляя пользователя взаимодействовать только с gui 3 сохранением позиции каретки (кажется трудным)

Если вам нужно, это код (он создает всплывающая подсказка к тексту в Microsoft Word):

; M i c r o s o f t _ W o r d _ T o o l t i p
;select the main text, then press Ctrl+Alt+Shift+t, then write the tooltip desired then press OK then alt+F9 to hide\unhide the code

^!+t::
;save clipboard
ClipboardA := Clipboard
;various things
Send ^x
Send ^{F9}
Send AutoTextList "
Send ^v
Send " \s No Style \t ""
Send {Ctrl up}{Shift up}{Alt up}{Left}
;save window id
WINDOWID := WinExist("A")
;open gui
gui, add, text, x4 y3, Insert here your tooltip 
gui, add, text, x4 y16, (If code won't hide press Alt+F9)
;add OK button
gui, add, button,default gbuttonOK x173 y0,OK
;add textbox
gui, add, edit, -WantReturn x0 y33 w200 h67 vINPUT,
;select textbox 
GuiControl, Focus, INPUT
;gui parameters
gui, +alwaysontop
gui, show, w200 h100, Insert tooltip
return

;if gui is closed pressing 'x' button               
guiclose:
Clipboard = %ClipboardA%
gui, destroy
return

;if OK is pressed
buttonOK:
;get input from textbox
GuiControlGet, INPUT
;activate Microsoft Word window
WinActivate, ahk_id %WINDOWID%
send %INPUT%
send {F9}
;restore clipboard
Clipboard = %ClipboardA%
;close gui
gui, destroy
return

1 Ответ

0 голосов
/ 08 апреля 2020

Вы можете отключить окно текстового поля и снова включить его следующим образом:

WinSet, Style, +0x8000000, Word ;Disable the window

WinSet, Style, -0x8000000, Word ;Enable the window

Положение каретки будет сохранено. Обратите внимание, что вы не можете сфокусировать окно мышью, пока оно отключено.

...