2010-09-18 60 views
-2

我想了解我從控制檯中的讀取命令獲得的值。這些輸出是一些鍵的組合嗎?Linux bash讀取輸出說明

F2 ^[OQ 
F3 ^[OR 
F4 ^[OS 
ESC ^[ 

我的問題是我使用特殊的128鍵鍵盤編程爲特定的軟件。我需要使用下面的代碼將這些「密鑰」發送到此軟件。不要對我使用Linux讀取鍵盤的事實感到困惑,並且在下面的代碼中我使用Win。我只是想在我的Linux機器上首先弄清楚它。

import win32api, win32com.client 

shell = win32com.client.Dispatch('WScript.Shell') 
shell.AppActivate('Some Application Title') 
shell.SendKeys('%fo') # Alt+F, O 
win32api.Sleep(100) 

日Thnx傢伙

+0

對不起,我在你的文章中找不到問號。你能指導我嗎? – AmirW 2010-09-18 00:40:02

+0

我想了解我從控制檯中的讀取命令獲得的值。這些輸出是一些鍵的組合嗎?像這樣的一個「^ [OQ]」當我按F1。是否可以在沒有按下鍵盤上的按鍵的情況下觸發F1? – 2010-09-18 00:51:41

回答

1

這些都是標準的ANSI轉義序列。 「^ [」是CSI =控制序列介紹人(不是電視劇)。

請參閱http://en.wikipedia.org/wiki/ANSI_escape_sequences或ANSI Escape Sequences上的類似來源。

如果您將這些序列發送到識別它們的東西,您可以導致它們暗示的效果,如清晰屏幕,更改顏色,或者確實如同按F1鍵一樣。但是,你需要一個處理它們的收件人! (就像一個Linux控制檯)一個簡單的文件流只會寫入字符。

+0

我使用的軟件與特定的鍵盤一起工作(這一個= http://www.tipro.si/images/product_midkm128a_big.jpg)。我想有一個可視化的基本腳本或類似的東西來執行該軟件中的一組命令(按鍵)。通過wscript.shell.sendkeys,當我用wscript激活它時,我能夠將字符發送到這個軟件中。 AppActivate('某個應用標題')。但是現在我需要用這些特殊的鑰匙讓它消失。 – 2010-09-18 01:25:01

+1

@Mitja Felicijan:Windows中的關鍵代碼與Linux中的關鍵代碼完全不同。 – 2010-09-18 01:40:22

+0

你能解釋爲什麼我會得到負面的投票? – 2010-09-20 22:30:04