使用javascript,我试图为用户提供打开Sticky Keys的选项。
手动操作可以通过按住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 :(得分:0)
无法在浏览器中运行(至少是具有良好安全性的标准浏览器),因为您所做的只是在浏览器的JavaScript引擎中触发事件,而不是在处理所有Windows事件的Win32API中触发事件。
出于安全考虑,这是故意的。
你需要一个插件,比如ActiveX或一些非标准化的浏览器,可以将事件提升到操作系统。