好的,我已經在我自己的Mac(版本10.6.8)和Windows XP上進行了本地測試,所以好消息是它可以正常工作(而且這非常簡單)。
的基本思想是:
- 知道如何從命令行打開屏幕鍵盤
- 將瀏覽器設置爲允許命令行中從JavaScript
- 寫你的HTML執行:-)
這兩個平臺的說明如下。
的Mac
對於Mac,下載並構建這個Xcode項目:
確保您的構建目標是一樣的客戶端的MAC(如64位英特爾等)。輸出將是一個名爲keyboardViewer
的可執行文件。這將在執行時彈出打開屏幕鍵盤。
讓我們假設你(在我的情況下)保存keyboadViewer
到用戶的桌面,那麼你將要執行的命令是:
/Users/Oliver/Desktop/keyboardViewer
。
的Windows
在Windows上,這是很容易打開屏幕上的鍵盤命令行。以下(或類似)將做到這一點:
C:\WINDOWS\system32\osk.exe
火狐
接下來,你將不得不從瀏覽器中執行這個文件(或Windows命令)。因此,安裝Firefox插件在這裏:
此插件可以讓你執行操作系統命令(如執行文件)的JavaScript。在您可以從附加組件中執行此操作之前,您需要將此命令添加到允許的命令列表中。
爲此,請在瀏覽器地址欄中轉到about:config
。右鍵單擊首選項列表並選擇New> String。您要添加的新偏好的名稱是extensions.commandrun.allowedcommands
。對於值,輸入以下命令:
- 在Mac:
["/Users/Oliver/Desktop/keyboardViewer"]
- 在Windows上:
["C:\\WINDOWS\\system32\\osk.exe"]
HTML現在
,你就可以打開屏幕來自Firefox的鍵盤與HTML這樣的:
<script language="javascript">
function openKeyboard(){
CommandRun.run("/Users/Oliver/Desktop/keyboardViewer", []);
}
</script>
<input type="text" onfocus="javascript:openKeyboard();" />
在Windows上,替換以下:
CommandRun.run("C:\\WINDOWS\\system32\\osk.exe", []);
替代
另一種方法是寫自己的瀏覽器中像Adobe空氣。使用該方法,您的JavaScript將調用您的Air應用程序,然後您的Air應用程序將執行keyboardViewer
(或Windows等效項)。
您對客戶端系統有多少控制?例如您的應用程序是否僅僅是用HTML編寫的,但是您控制了有關環境的其他所有內容(包括將要播放的桌面應用程序)? – 2012-07-26 19:24:55
不知道我理解你的問題。這是一個web應用程序,所以我的代碼只能訪問客戶端系統的正常級別。然而,該網站將被預先知道的有限數量的客戶端機器使用(它將主要用於大型演示/演示)。某些客戶端設置已經需要與觸摸屏一起使用,因此涉及客戶端更改的解決方案是可以接受的。 – user1555590 2012-07-26 20:01:31