आरडीपी फुलस्क्रीन के लिए चाबियाँ भेजने के लिए एएचके को कैसे ठीक करें?


7

विंडोज 7 पर फुलस्क्रीन में रिमोट डेस्कटॉप के साथ काम करने के लिए आपको AutoHotKey हॉटकी कैसे मिलती है?

जवाबों:


4

User16659 नोट के रूप में, हॉटकीज़ Reloadफिर से काम करता है (लेकिन उसकी स्क्रिप्ट मेरे लिए काम नहीं करती थी)।

मूल रूप से, मेरे पास अब दो स्क्रिप्ट चल रही हैं, एक जिसमें मेरी हॉटकी और हॉटस्ट्रिंग्स हैं "script.ahk"और दूसरा जो आरडीपी अधिकतम होने पर इस स्क्रिप्ट को पुनः लोड करेगा "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 में यह हॉट स्ट्रिंग्स के लिए शिफ्ट की प्रेस नहीं भेजता है, उदाहरण के लिए यदि आप भेजते हैं *तो यह भेजेगा 8...:(
ताहिर हसन

मुझे आरडीपी में SendInput, {shift}8{shift up}भेजने के लिए कुछ करना था *, लेकिन यह 8विंडोज में भेजेगा । SendInput, {shift down}8{shift up}दूसरे तरीके से काम करता है।
user16659

1
आपके उपरोक्त प्रश्न का उत्तर देने के बाद से, मैंने दूरस्थ सर्वर पर अपनी AHK स्क्रिप्ट को चलाने का निर्णय लिया है (यह बहुत विश्वसनीय है)। मैंने script.ahk को बंद करने के लिए कंट्रोलर को बदल दिया है। इसलिए यह सर्वर की स्क्रिप्ट के साथ हस्तक्षेप नहीं करता है। मैंने अपने ब्लॉग पर अपना हल चिपकाया: tahirhassan.blogspot.co.uk/2012/11/autohotkey-scripts_19.html
ताहिर हसन

11

आपको दूरस्थ डेस्कटॉप कनेक्शन "mstsc.exe" के "स्थानीय संसाधन" टैब पर "विंडोज़ कंप्यूटर संयोजन" को "इस कंप्यूटर पर" सेट करने की आवश्यकता हैMSTSC विन्डोज़ प्रमुख सहयोग


1

फुलस्क्रीन में माइक्रोसॉफ्ट के टर्मिनल सर्वर क्लाइंट के साथ एएचके काम करने के लिए, दूरस्थ डेस्कटॉप विंडो सक्रिय होने के बाद एएचके को फिर से लोड करना पड़ता है।

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

शीर्ष उत्तर पर टिप्पणी नहीं जोड़ सकते, लेकिन मैंने सुझाए गए स्क्रिप्ट को संशोधित किया है जो ताहिर ने अपने ब्लॉग से जुड़े हुए शीर्ष उत्तर में इसे क्लीनर और उपयोग में आसान बनाने के लिए जोड़ा है।

निम्न स्क्रिप्ट स्थानीय स्क्रिप्ट को निलंबित करके काम करती है जब पूर्ण स्क्रीन आरडीपी अलग स्क्रिप्ट संस्करण को मारने और फिर से शुरू करने के बजाय सक्रिय होता है, तो हर बार ध्यान केंद्रित किया जाता है। यह हल्का है, और मारे गए लिपियों के लिए बहुत सारे ज़ोंबी एएचके आइकन के साथ अधिसूचना ट्रे को कूड़े से बचने से भी बचा जाता है। इसका मतलब यह भी है कि आप इसे अपनी मौजूदा स्क्रिप्ट में जोड़ सकते हैं, बजाय इसके कि दोनों को अलग-अलग चलाएं!

; 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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.