यदि आप एक फ़ंक्शन कुंजी को "भेजना" चाहते हैं, तो उपयुक्त सिंटैक्स का उपयोग करें
^F1::SendInput {F5}
इससे पुट्टी को अभिनय करने का कारण होगा जैसे कि आपने F5 दबाया था और फिर यह सर्वर को वर्णों का एक उपयुक्त अनुक्रम (एक एस्केप अनुक्रम) भेजेगा।
PC Server
+---------------------+ Network +-------------------------+
| [AHK] ----> [Putty] | ============> | [TTY] ------> [Program] |
| F5 | Esc [ 15 ~ | Esc… | ^ |
+---------------------+ | | | F5 |
| v | |
| $TERM------[Curses] |
| | |
| /usr/share/terminfo |
+-------------------------+
सर्वर पर, एस्केप सीक्वेंस को पहले TTY हैंडलर (इंटरप्ट सिग्नल आदि की तलाश) द्वारा संसाधित किया जाता है और फिर आपके सर्वर प्रोग्राम को दिया जाता है, जो इसे टाइप करता है। curses
लाइब्रेरी जो एस्केप सिक्वेंस को फ़ंक्शंस के नामों में बदल देती है। कार्यक्रम तब निर्णय लेता है कि प्राप्त करने के परिणामस्वरूप क्या करना है।
वास्तविक एस्केप सीक्वेंस "टर्मिनल एमुलेशन" पर निर्भर करता है। डिफ़ॉल्ट रूप से, पुट्टी एक xterm का अनुकरण करता है। Curses लाइब्रेरी पर्यावरण वेरिएबल TERM की वैल्यू का उपयोग टर्मऑफ में देखने के लिए करती है कि फंक्शन को एक एस्केप सीक्वेंस द्वारा दर्शाया गया है।
फ़ंक्शन कुंजियों के लिए एस्केप सीक्वेंस / etc / termcap में मिल सकते हैं, यहाँ कुछ हैं
SCO PuTTY PuTTY
Key Termcap VT100 VT220 ANSI XTERM VT400
--- ------- ------- ------- ------ ------ -------
F1 k1 Esc[OP Esc[OP Esc[M Esc[OP Esc[11~
F2 k2 Esc[OQ Esc[OQ Esc[N Esc[OQ Esc[12~
F3 k3 Esc[OR Esc[OR Esc[O Esc[OR Esc[13~
F4 k4 Esc[OS Esc[OS Esc[P Esc[OS Esc[14~
F5 k5 - - Esc[Q Esc[15~ Esc[15~
F6 k6 - Esc[17~ Esc[R Esc[17~ Esc[17~
F7 k7 - Esc[18~ Esc[S Esc[18~ Esc[18~
...
F10 k0 - Esc[21~ Esc[V Esc[21~ Esc[21~
F11 k1 - Esc[23~ Esc[X Esc[23~ Esc[23~
...
F14 kD - Esc[26~ Esc[Z Esc[26~ Esc[26~
F15 kE - Esc[27~ Esc[a Esc[27~ Esc[27~
...
F36 FP -
...
F63 Fr -
टिप्पणियाँ
- VT100 सीरीज़ में PF1 को PF4 में लेबल करने वाली केवल चार फ़ंक्शन कुंजियाँ थीं
- VT220 में F20 तक 20 फ़ंक्शन कुंजियाँ थीं
- VT220 ने "ब्रेक" फ़ंक्शन के लिए स्थिति 5 पर फ़ंक्शन कुंजी का उपयोग किया। (इसलिए उपरोक्त अंतर)
- सभी एमुलेटर या एक्सटेंडेड टर्मकैप / टर्मोफ फाइल्स उपरोक्त के बारे में सहमत नहीं हैं।
- प्रगति में अजीबोगरीब अंतराल हैं।
- xterm एक परिभाषा नहीं है, यह मिसफिट्स का एक अनियंत्रित परिवार है, कोई दो समान नहीं।
- Ditto "ANSI"
- कई एमुलेटर F13 के लिए Shift + F1 का उपयोग करते हैं, F25 के लिए Alt + F1 आदि
- PuTTY में, Shift + F1 F11 के समान है (F13 नहीं)
- हां यह गड़बड़ है। इसलिए हमने PuTTY और Terminfo को इसे हमसे छिपाने दिया।