Триггерная Автогорячая клавиша на новом окне

Как я устанавливаю действие для инициирования каждый раз, когда новое окно открывается в автогорячей клавише? Например, я мог установить любое окно Windows Explorer, которое будет отмечено как "Поверх остальных окон", как только оно подходит. Или я мог установить любые новые окна Skype, чтобы всегда открыться на втором мониторе или всегда быть полупрозрачным, и т.д...

Я думаю, что автогорячая клавиша может достигнуть этого, но я не знаю как. Мне нужен он для выполнения некоторого произвольного действия с новым окном, как только это подходит.

3
задан 04.04.2011, 04:05

1 ответ

AutoHotkey является вне вращения, созданным специально для горячих клавиш...

Вы могли бы хотеть попробовать исходный AutoIt вместо этого, он имеет много функций автоматизации, включая события окна!

Более конкретный, можно найти сценарий здесь, который отслеживает окна и действует на новые окна.

#include <Array.au3>

; Initialize tracking arrays
Global $avWinListPrevious[1][2] = [[0, ""]], $avWinListCurrent

; Monitor unique window handles
While 1
    $avWinListCurrent = WinList("[REGEXPTITLE:.+[ \- ]GIMP]", "GNU Image Manipulation Program")
    For $n = $avWinListCurrent[0][0] To 1 Step -1
   ; Check has title and visible
        If ($avWinListCurrent[$n][0] <> "") And BitAND(WinGetState($avWinListCurrent[$n][1]), 2) Then
       ; Check for already seen
            $fFound = False
            For $i = 1 To $avWinListPrevious[0][0]
                If $avWinListCurrent[$n][1] = $avWinListPrevious[$i][1] Then
                    $fFound = True
                    ExitLoop
                EndIf
            Next

       ; New window found
            If Not $fFound Then
                WinMove("[REGEXPTITLE:.+[ \- ]GIMP]", "GNU Image Manipulation Program", 169, 0, 893, 771 )
            EndIf
        Else
            _ArrayDelete($avWinListCurrent, $n)
        EndIf
    Next
    $avWinListCurrent[0][0] = UBound($avWinListCurrent) - 1
    $avWinListPrevious = $avWinListCurrent
    Sleep(500)
WEnd
1
ответ дан 07.12.2019, 23:43

Теги

Похожие вопросы