AHK를 수정하여 키를 RDP 전체 화면으로 보내는 방법은 무엇입니까?


답변:


3

사용자 16659가 말하듯이, Reload 바로 가기 키를 다시 작동시킵니다 (그러나 그의 스크립트는 나를 위해 작동하지 않습니다).

기본적으로 두 개의 스크립트가 실행되고 있는데 하나는 단축키와 핫 스트링이 들어 있습니다. "script.ahk" RDP가 최대화되면이 스크립트를 다시로드하는 다른 스크립트 "controller.ahk".

script.ahk :

#SingleInstance force
::hw::Hello World

controller.ahk :

Run "autohotkey" "script.ahk"

#Persistent
SetTimer, ReloadOnRDPMaximized, 500
return

ReloadOnRDPMaximized:
If WinActive("ahk_class TscShellContainerClass")
{
    WinGet, maxOrMin, MinMax, ahk_class TscShellContainerClass

    if (maxOrMin = 0) {
        WinGetPos, PosX, PosY, WinWidth, WinHeight, ahk_class TscShellContainerClass

        if (PosY = 0) {
            ; it is fully maximized therefore reload "script.ahk"
            Run "autohotkey" "script.ahk"

            ; wait until window gets deactivated so you don't reload it again.
            WinWaitNotActive, ahk_class TscShellContainerClass

        }
    }
}
return

2
그러나 나는 RDP에서 핫 스트링에 Shift 키를 보내지 않아서 내 솔루션조차도 작동하지 않는 것으로 나타났습니다. 당신이 보낸다면 * 그 때 그것은 보낼 것이다 8... :(
Tahir Hassan

나는 뭔가를해야했다. SendInput, {shift}8{shift up} 보내다 * RDP에 있지만, 보낼 것입니다. 8 Windows에서. SendInput, {shift down}8{shift up} 다른 방향으로 작동합니다.
user16659

1
위의 질문에 답한 후 원격 서버에서 AHK 스크립트를 실행하기로 결정했습니다 (훨씬 더 안정적입니다). script.ahk를 닫으려면 controller.ahk를 변경 했으므로 서버의 스크립트를 방해하지 않습니다. 내 솔루션에 내 블로그를 붙여 넣었습니다. tahirhassan.blogspot.co.uk/2012/11/autohotkey-scripts_19.html
Tahir Hassan

10

또한 원격 데스크톱 연결 'mstsc.exe'의 '로컬 리소스'탭에있는 "Windows 키 조합 적용"을 "이 컴퓨터에서 사용"으로 설정해야합니다. MSTSC WINDOWS KEY COMBINATIONS


1

AHK를 Microsoft의 터미널 서버 클라이언트와 함께 전체 화면으로 작동 시키려면 원격 데스크톱 창이 활성화 된 후 AHK를 다시로드해야합니다.

SetTimer, waitforrdp, -250
return

:*:ppp::password
:*:ccc::
SendInput, {shift}C{shift up}
SendInput, apitalized
return

waitforrdp:
IfWinActive, ahk_class TscShellContainerClass
{
    WinWaitNotActive, ahk_class TscShellContainerClass,,3600
}
WinWaitActive, ahk_class TscShellContainerClass,,3600
Reload
return

0

맨 위로 답변에 댓글을 추가 할 수는 없지만 가장 명확하고 쉽게 사용하도록 Tahir이 자신의 블로그에 링크 된 추천 스크립트를 수정했습니다.

다음은 포커스가 이동 될 때마다 별도의 스크립트 버전을 중지하고 다시 시작하지 않고 전체 화면 RDP가 활성화되어있을 때 로컬 스크립트를 일시 중단하여 작동합니다. 이것은 더 가벼우 며 살해 된 스크립트에 대한 좀비 AHK 아이콘이 많은 알림 트레이를 낭비하지 않습니다. 이것은 또한 두 스크립트를 별도로 실행하지 않고 기존 스크립트에 추가 할 수 있음을 의미합니다!

; this line should be put on top (auto-exec) section of ahk script
SetTimer, SuspendOnRDPMaximized, 500

; this actual code label and the fn can be put anywhere in the script file
SuspendOnRDPMaximized:
If WinActive("ahk_class TscShellContainerClass") {
    WinGet, maxOrMin, MinMax, ahk_class TscShellContainerClass
    if (maxOrMin = 0) {
        WinGetPos, PosX, PosY, WinWidth, WinHeight, ahk_class TscShellContainerClass
        if (PosY = 0) {  ; it is fully maximized
            Suspend, On
            WinWaitNotActive, ahk_class TscShellContainerClass
            Suspend, Off
        }
    }
}
return
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.