2015-04-01 104 views
1

使用JavaScript,我試圖爲用戶提供一個選項來打開粘滯鍵。模擬打開Windows中的粘滯鍵

手動這可以通過按Shift鍵5次完成。

以下沒有成功。還嘗試將shiftKeyArg設置爲true。

function stickyKeys() { 
var keyboardEvent1 = document.createEvent("KeyboardEvent"); 
var initMethod = typeof keyboardEvent1.initKeyboardEvent !== 'undefined' ? "initKeyboardEvent" : "initKeyEvent"; 
keyboardEvent1[initMethod](
"keydown", // event type : keydown, keyup, keypress 
true, // bubbles 
true, // cancelable 
window, // viewArg: should be window 
false, // ctrlKeyArg 
false, // altKeyArg 
false, // shiftKeyArg 
false, // metaKeyArg 
16, 
0 
); 
var keyboardEvent2 = document.createEvent("KeyboardEvent"); 
var initMethod = typeof keyboardEvent2.initKeyboardEvent !== 'undefined' ? "initKeyboardEvent" : "initKeyEvent"; 
keyboardEvent2[initMethod](
"keyup", // event type : keydown, keyup, keypress 
true, // bubbles 
true, // cancelable 
window, // viewArg: should be window 
false, // ctrlKeyArg 
false, // altKeyArg 
false, // shiftKeyArg 
false, // metaKeyArg 
16, 
0 
); 
document.dispatchEvent(keyboardEvent1); 
document.dispatchEvent(keyboardEvent2); 
document.dispatchEvent(keyboardEvent1); 
document.dispatchEvent(keyboardEvent2); 
document.dispatchEvent(keyboardEvent1); 
document.dispatchEvent(keyboardEvent2); 
document.dispatchEvent(keyboardEvent1); 
document.dispatchEvent(keyboardEvent2); 
document.dispatchEvent(keyboardEvent1); 
document.dispatchEvent(keyboardEvent2); 
alert("sticky keys on"); 
} 
+0

由於您只是在瀏覽器的JavaScript引擎中觸發事件,而不是在處理所有Windows事件的Win32API中,所以無法從瀏覽器(至少是具有良好安全性的標準瀏覽器)工作。出於安全原因,這是故意的。你需要一個插件,比如ActiveX或者一些非標準化的瀏覽器,將事件提升到操作系統。 – ppumkin 2015-04-01 14:17:00

+0

我**希望** javascript永遠不能做到這一點... – Alex 2015-04-01 14:18:36

+0

好吧,亞歷克斯它可以,而不是在典型的瀏覽器,擔心用戶的安全。 – ppumkin 2015-04-01 14:19:34

回答

0

將不會從一個瀏覽器(至少一個標準具有良好的安全性)的工作,因爲你做的是在瀏覽器的JavaScript引擎觸發事件,而不是在處理所有的Windows事件的Win32API的。

出於安全考慮,這是故意的。

您需要一個插件,如ActiveX或某些非標準化的瀏覽器,將事件提升到操作系統。

+1

謝謝,我不會再花更多時間。 – martin 2015-04-01 14:29:04

+0

沒問題的人。我知道這一點的原因是因爲我花了幾個小時試圖破解瀏覽器來做類似的事情,但是在我信任的計算機上的Intranet應用程序中。它很難做到,但我們都知道爲什麼正確:)讓壞人出去。祝你好運。 – ppumkin 2015-04-01 14:34:01

+0

那麼我認爲還沒有辦法知道粘滯鍵是打開還是關閉? – martin 2015-04-01 14:35:52